開発環境
- OS: macOS High Sierra - Apple
- IDE(統合開発環境): Visual Studio for Mac
- プログラミング言語: C#
初めてのC# 第2版 (Jesse Liberty (著)、Brian MacDonald (著)、日向 俊二 (翻訳)、オライリージャパン)の13章(インターフェース)、13.10(練習問題)、練習13-4.を取り組んでみる。
コード
using System;
namespace Sample13_4
{
interface IConvertible
{
string ConvertToCSharp(string s);
string ConvertToVB2017(string s);
}
interface ICodeChecker: IConvertible
{
bool CodeCheckSyntax(string str, string lang);
}
class ProgramConverter : IConvertible
{
#region IConvertible
public string ConvertToCSharp(string s)
{
return String.Format("ProgramConverter, IConvertible, ConvertToCSharp: {0}", s);
}
public string ConvertToVB2017(string s)
{
return String.Format("ProgramConverter, IConvertible, ConvertToVB2017:D {0}", s);
}
#endregion
}
class ProgramHelper : ProgramConverter, ICodeChecker
{
#region ICodeChecker
public bool CodeCheckSyntax(string str, string lang)
{
Console.WriteLine("CodeCheckSyntax: {0}, {1}", str, lang);
return true;
}
#endregion
}
class Program
{
static void Main(string[] args)
{
ProgramConverter pc = new ProgramConverter();
ProgramHelper ph = new ProgramHelper();
string str = "STR";
ProgramConverter[] pcs = { ph, ph };
foreach (var item in pcs)
{
Console.WriteLine(item.ConvertToCSharp(str));
Console.WriteLine(item.ConvertToVB2017(str));
Console.WriteLine("is");
if (item is ICodeChecker)
{
ICodeChecker t1 = (ICodeChecker)item;
Console.WriteLine(((ICodeChecker)item).CodeCheckSyntax(str, "C#"));
}
Console.WriteLine("as");
ICodeChecker t2 = item as ICodeChecker;
if (t2 != null)
{
Console.WriteLine(t2.CodeCheckSyntax(str, "VB"));
}
}
}
}
}
入出力結果(Terminal)
ProgramConverter, IConvertible, ConvertToCSharp: STR ProgramConverter, IConvertible, ConvertToVB2017:D STR is CodeCheckSyntax: STR, C# True as CodeCheckSyntax: STR, VB True ProgramConverter, IConvertible, ConvertToCSharp: STR ProgramConverter, IConvertible, ConvertToVB2017:D STR is CodeCheckSyntax: STR, C# True as CodeCheckSyntax: STR, VB True Press any key to continue...
0 コメント:
コメントを投稿