2018年5月18日金曜日

開発環境

初めてのC# 第2版 (Jesse Liberty (著)、Brian MacDonald (著)日向 俊二 (翻訳)、オライリージャパン)の13章(インターフェース)、13.10(練習問題)、練習13-4.を取り組んでみる。

コード

using System;

class Program
{
    static void Main(string[] args)
    {
        ProgramHelper ph = new ProgramHelper();
        ProgramConverter pc = new ProgramConverter();

        Console.WriteLine("ProgramHelper");
        Console.WriteLine("is演算子");
        if (ph is ICodeChecker)
        {
            ICodeChecker codeChecker1 = ph as ICodeChecker;
            Console.WriteLine(codeChecker1.CodeCheckSyntax("", ""));
        }
        Console.WriteLine("as演算子");
        ICodeChecker codeChecker = ph as ICodeChecker;
        if (codeChecker != null)
        {
            Console.WriteLine(codeChecker.CodeCheckSyntax("", ""));
        }

        Console.WriteLine("ProgramConverter");
        Console.WriteLine("is演算子");
        if (pc is ICodeChecker)
        {
            ICodeChecker codeChecker1 = pc as ICodeChecker;
            Console.WriteLine(codeChecker1.CodeCheckSyntax("", ""));
        }
        Console.WriteLine("as演算子");
        ICodeChecker codeChecker2 = pc as ICodeChecker;
        if (codeChecker2 != null)
        {
            Console.WriteLine(codeChecker2.CodeCheckSyntax("", ""));
        }

    }
}

interface IConvertible
{
    string ConvertToCSharp(string s);
    string ConvertToVB(string s);
}

interface ICodeChecker: IConvertible
{
    bool CodeCheckSyntax(string s, string lang);
}


class ProgramConverter : IConvertible
{
    public string ConvertToCSharp(string s)
    {
        return "VBの文字列をC#に変換";
    }

    public string ConvertToVB(string s)
    {
        return "C#の文字列をVBに変換";
    }
}

class ProgramHelper : ProgramConverter, ICodeChecker
{
    public bool CodeCheckSyntax(string s, string lang)
    {
        return true;
    }
}

入出力結果(コマンドプロンプト)

ProgramHelper
is演算子
True
as演算子
True
ProgramConverter
is演算子
as演算子
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿