開発環境
- 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 コメント:
コメントを投稿