プログラミング(Python、Perl、C、Go、JavaScript)、数学、読書…
開発環境
"初めてのC# 第2版"のp.241, 第13章(インタフェース)の13.10(練習問題)、練習 13-1, 2, 3, 4を解いてみる。
練習 13-1
練習 13-2
using System; namespace InterfaceDemo { interface IConvertible { string ConvertToCSharp(string s); string ConvertToVB2005(string s); } public class ProgramHelper : IConvertible { public ProgramHelper() { Console.WriteLine("ProgramHelperを作成"); } #region IConvertible public string ConvertToCSharp(string s) { return "文字列をC#の文字列に変換"; } public string ConvertToVB2005(string s) { return "文字列をVB2005の文字列に変換"; } #endregion } class Tester { public void Run() { ProgramHelper help = new ProgramHelper(); string str = "文字列"; Console.WriteLine(help.ConvertToCSharp(str)); Console.WriteLine(help.ConvertToVB2005(str)); } static void Main() { Tester t = new Tester(); t.Run(); } } }
練習 13-3
using System; namespace InterfaceDemo { interface IConvertible { string ConvertToCSharp(string s); string ConvertToVB2005(string s); } interface ICodeChecker : IConvertible { bool CodeCheckSyntax(string s, string language); } public class ProgramHelper : ICodeChecker { public ProgramHelper() { Console.WriteLine("ProgramHelperを作成"); } #region ICodeChecker public string ConvertToCSharp(string s) { return "文字列をC#の文字列に変換"; } public string ConvertToVB2005(string s) { return "文字列をVB2005の文字列に変換"; } public bool CodeCheckSyntax(string s, string language) { switch (language) { case "CSharp": Console.WriteLine("言語がCSharpかチェック"); return true; case "VB2005": Console.WriteLine("言語がVB2005かチェック"); return true; default: return false; } } #endregion } class Tester { public void Run() { ProgramHelper help = new ProgramHelper(); string cs = "CSharp"; string vb = "VB2005"; help.CodeCheckSyntax(cs, cs); help.CodeCheckSyntax(vb, cs); help.CodeCheckSyntax(cs, vb); help.CodeCheckSyntax(vb, vb); } static void Main() { Tester t = new Tester(); t.Run(); } } }
練習 13-4
using System; namespace InterfaceDemo { interface IConvertible { string ConvertToCSharp(string s); string ConvertToVB2005(string s); } interface ICodeChecker : IConvertible { bool CodeCheckSyntax(string s, string language); } public class ProgramConverter : IConvertible { public ProgramConverter() { Console.WriteLine("ProgramConverterを作成"); } #region IConvertible public string ConvertToCSharp(string s) { return "文字列をC#の文字列に変換"; } public string ConvertToVB2005(string s) { return "文字列をVB2005の文字列に変換"; } #endregion } public class ProgramHelper : ProgramConverter,ICodeChecker { public ProgramHelper() { Console.WriteLine("ProgramHelperを作成"); } #region ICodeChecker public bool CodeCheckSyntax(string s, string language) { switch (language) { case "CSharp": Console.WriteLine("言語がCSharpかチェック"); return true; case "VB2005": Console.WriteLine("言語がVB2005かチェック"); return true; default: return false; } } #endregion } class Tester { public void Run() { ProgramConverter converter = new ProgramConverter(); ProgramHelper helper = new ProgramHelper(); if (converter is ICodeChecker) { Console.WriteLine("converterはICodeCheckerを実装している"); } else { Console.WriteLine("converterはICodecheckerを実装していない"); } IConvertible convertible = helper as IConvertible; if (convertible != null) { Console.WriteLine("helperはIConvertibleを実装している"); } else { Console.WriteLine("helperはIConvertibleを実装していない"); } } static void Main() { Tester t = new Tester(); t.Run(); } } }
0 コメント:
コメントを投稿