プログラミング(Python、Perl、C、Go、JavaScript)、数学、読書…
開発環境
"初めてのC# 第2版"の第13章(インターフェイス)の13.10(練習問題)を解いてみる。
練習 13-1
using System; interface IConvertible { string ConvertToCSharp(string s); string ConvertToVB2005(string s); }
練習 13-2
using System; interface IConvertible { string ConvertToCSharp(string s); string ConvertToVB2005(string s); } public class ProgramHelper : IConvertible { #region IConvertible public string ConvertToCSharp(string s) { return "文字列" + s + "をC#の文字列に変換"; } public string ConvertToVB2005(string s) { return "文字列" + s + "をVB2005の文字列に変換"; } #endregion // IConvertible } class Tester { public void Run() { ProgramHelper helper = new ProgramHelper(); string s = "string"; Console.WriteLine(helper.ConvertToCSharp(s)); Console.WriteLine(helper.ConvertToVB2005(s)); } static void Main() { Tester t = new Tester(); t.Run(); } }
出力結果
文字列stringをC#の文字列に変換 文字列stringをVB2005の文字列に変換 続行するには何かキーを押してください . . .
練習 13-3
using System; interface IConvertible { string ConvertToCSharp(string s); string ConvertToVB2005(string s); } interface ICodeChecker : IConvertible { bool CodeCheckSyntax(string s, string lang); } public class ProgramHelper : ICodeChecker { #region IConvertible public string ConvertToCSharp(string s) { return "文字列" + s + "をC#の文字列に変換"; } public string ConvertToVB2005(string s) { return "文字列" + s + "をVB2005の文字列に変換"; } #endregion // IConvertible #region ICodechecker public bool CodeCheckSyntax(string s, string lang) { switch (lang) { case "CSharp": Console.WriteLine( "文字列{0}が{1}のSyntaxかCheck", s, lang); return true; case "VB2005": Console.WriteLine( "文字列{0}が{1}のSyntaxかCheck", s, lang); return true; default: return false; } } #endregion // ICodechecker } class Tester { public void Run() { ProgramHelper helper = new ProgramHelper(); string s = "string"; string lang1 = "CSharp"; string lang2 = "VB2005"; string lang3 = "JavaScript"; Console.WriteLine(helper.CodeCheckSyntax(s, lang1)); Console.WriteLine(helper.CodeCheckSyntax(s, lang2)); Console.WriteLine(helper.CodeCheckSyntax(s, lang3)); } static void Main() { Tester t = new Tester(); t.Run(); } }
文字列stringがCSharpのSyntaxかCheck True 文字列stringがVB2005のSyntaxかCheck True False 続行するには何かキーを押してください . . .
練習 13-4
using System; interface IConvertible { string ConvertToCSharp(string s); string ConvertToVB2005(string s); } interface ICodeChecker : IConvertible { bool CodeCheckSyntax(string s, string lang); } public class ProgramConverter : IConvertible { #region IConvertible public string ConvertToCSharp(string s) { return "文字列" + s + "をC#の身時列に変換"; } public string ConvertToVB2005(string s) { return "文字列" + s + "をVB2005の文字列に変換"; } #endregion // IConvertible } public class ProgramHelper : ProgramConverter, ICodeChecker { #region ICodechecker public bool CodeCheckSyntax(string s, string lang) { switch (lang) { case "CSharp": Console.WriteLine( "文字列{0}が{1}のSyntaxかCheck", s, lang); return true; case "VB2005": Console.WriteLine( "文字列{0}が{1}のSyntaxかCheck", s, lang); return true; default: return false; } } #endregion // ICodechecker } class Tester { public void Run() { ProgramConverter[] converters = new ProgramConverter[2]; converters[0] = new ProgramConverter(); converters[1] = new ProgramHelper(); foreach (ProgramConverter converter in converters) { string s = "string"; string lang1 = "CSharp"; string lang2 = "VB2005"; ProgramHelper helper = converter as ProgramHelper; if (helper != null) { Console.WriteLine(helper.CodeCheckSyntax(s, lang1)); Console.WriteLine(helper.CodeCheckSyntax(s, lang2)); } else { Console.WriteLine("文字列{0}はチェックできない", s); } } } static void Main() { Tester t = new Tester(); t.Run(); } }
文字列stringはチェックできない 文字列stringがCSharpのSyntaxかCheck True 文字列stringがVB2005のSyntaxかCheck True 続行するには何かキーを押してください . . .
0 コメント:
コメントを投稿