private void OnDateChanged(DateTimeValue x) { HasValue = true; DateTime date = DateTime.Now; if (x is PersianDateValue) { date = Persian.ToDateTime(); } else if (x is GregorianDateValue) { date = Gregorian.ToDateTime(); } else if (x is HebrewDateValue) { date = Hebrew.ToDateTime(); } else if (x is HijriDateValue) { date = Hijri.ToDateTime(); } else if (x is JulianDateValue) { date = Julian.ToDateTime(); } else if (x is KoreanDateValue) { date = Korean.ToDateTime(); } else if (x is JapaneseDateValue) { date = Japanese.ToDateTime(); } else if (x is TaiwanDateValue) { date = Taiwan.ToDateTime(); } else if (x is KoreanLunisolarDateValue) { date = KoreanLunisolar.ToDateTime(); } else if (x is JapaneseLunisolarDateValue) { date = JapaneseLunisolar.ToDateTime(); } else if (x is TaiwanLunisolarDateValue) { date = TaiwanLunisolar.ToDateTime(); } else if (x is ChineseLunisolarDateValue) { date = ChineseLunisolar.ToDateTime(); } if (persian != null && !(x is PersianDateValue)) { Persian.DateChanged -= OnDateChanged; Persian.Read(date); } if (gregorian != null && !(x is GregorianDateValue)) { Gregorian.DateChanged -= OnDateChanged; Gregorian.Read(date); } if (julian != null && !(x is JulianDateValue)) { Julian.DateChanged -= OnDateChanged; Julian.Read(date); } if (hebrew != null && !(x is HebrewDateValue)) { Hebrew.DateChanged -= OnDateChanged; Hebrew.Read(date); } if (hijri != null && !(x is HijriDateValue)) { Hijri.DateChanged -= OnDateChanged; Hijri.Read(date); } if (korean != null && !(x is KoreanDateValue)) { Korean.DateChanged -= OnDateChanged; Korean.Read(date); } if (japanese != null && !(x is JapaneseDateValue)) { Japanese.DateChanged -= OnDateChanged; Japanese.Read(date); } if (taiwan != null && !(x is TaiwanDateValue)) { Taiwan.DateChanged -= OnDateChanged; Taiwan.Read(date); } if (koreanLunisolar != null && !(x is KoreanLunisolarDateValue)) { KoreanLunisolar.DateChanged -= OnDateChanged; KoreanLunisolar.Read(date); } if (japaneseLunisolar != null && !(x is JapaneseLunisolarDateValue)) { JapaneseLunisolar.DateChanged -= OnDateChanged; JapaneseLunisolar.Read(date); } if (taiwanLunisolar != null && !(x is TaiwanLunisolarDateValue)) { TaiwanLunisolar.DateChanged -= OnDateChanged; TaiwanLunisolar.Read(date); } if (chineseLunisolar != null && !(x is ChineseLunisolarDateValue)) { ChineseLunisolar.DateChanged -= OnDateChanged; ChineseLunisolar.Read(date); } if (persian != null && !(x is PersianDateValue)) { Persian.DateChanged += OnDateChanged; } if (gregorian != null && !(x is GregorianDateValue)) { Gregorian.DateChanged += OnDateChanged; } if (julian != null && !(x is JulianDateValue)) { Julian.DateChanged += OnDateChanged; } if (hebrew != null && !(x is HebrewDateValue)) { Hebrew.DateChanged += OnDateChanged; } if (hijri != null && !(x is HijriDateValue)) { Hijri.DateChanged += OnDateChanged; } if (korean != null && !(x is KoreanDateValue)) { Korean.DateChanged += OnDateChanged; } if (japanese != null && !(x is JapaneseDateValue)) { Japanese.DateChanged += OnDateChanged; } if (taiwan != null && !(x is TaiwanDateValue)) { Taiwan.DateChanged += OnDateChanged; } if (koreanLunisolar != null && !(x is KoreanLunisolarDateValue)) { KoreanLunisolar.DateChanged += OnDateChanged; } if (japaneseLunisolar != null && !(x is JapaneseLunisolarDateValue)) { JapaneseLunisolar.DateChanged += OnDateChanged; } if (taiwanLunisolar != null && !(x is TaiwanLunisolarDateValue)) { TaiwanLunisolar.DateChanged += OnDateChanged; } if (chineseLunisolar != null && !(x is ChineseLunisolarDateValue)) { ChineseLunisolar.DateChanged += OnDateChanged; } }
public static Language AutoDetectLanguage(string[] words) { var languageCount = new List <int>(new int[] { 0, 0, 0, 0, 0, 0, 0 }); int index; foreach (var s in words) { if (English.WordExists(s, out index)) { //english is at 0 languageCount[0]++; } if (Japanese.WordExists(s, out index)) { //japanese is at 1 languageCount[1]++; } if (Spanish.WordExists(s, out index)) { //spanish is at 2 languageCount[2]++; } if (ChineseSimplified.WordExists(s, out index)) { //chinese simplified is at 3 languageCount[3]++; } if (ChineseTraditional.WordExists(s, out index) && !ChineseSimplified.WordExists(s, out index)) { //chinese traditional is at 4 languageCount[4]++; } if (French.WordExists(s, out index)) { languageCount[5]++; } if (PortugueseBrazil.WordExists(s, out index)) { //portuguese_brazil is at 6 languageCount[6]++; } } //no hits found for any language unknown if (languageCount.Max() == 0) { return(Language.Unknown); } if (languageCount.IndexOf(languageCount.Max()) == 0) { return(Language.English); } if (languageCount.IndexOf(languageCount.Max()) == 1) { return(Language.Japanese); } if (languageCount.IndexOf(languageCount.Max()) == 2) { return(Language.Spanish); } if (languageCount.IndexOf(languageCount.Max()) == 3) { if (languageCount[4] > 0) { // has traditional characters so not simplified but instead traditional return(Language.ChineseTraditional); } return(Language.ChineseSimplified); } if (languageCount.IndexOf(languageCount.Max()) == 4) { return(Language.ChineseTraditional); } if (languageCount.IndexOf(languageCount.Max()) == 5) { return(Language.French); } if (languageCount.IndexOf(languageCount.Max()) == 6) { return(Language.PortugueseBrazil); } return(Language.Unknown); }
//↑と同義 // static void SayHelloFromDeligater() { // Console.WriteLine("hi!"); // } //////////////////// // //////////////////// static void Main() { //変数 string msg = "Hello World"; Console.WriteLine(msg); //定数 const string CONST_MSG = "CONST MESSAGE"; Console.WriteLine(CONST_MSG); //============================== // 型 //============================== // 文字列、文字 // string, char string s = "hello"; char c = 'a'; // 整数値 // byte, short, int, long int i1 = 100; // 浮動小数点数 // float, double double d = 52342.34; float f = 23.3f; // 論理値 // bool -> true, false bool flag1 = true; // 型推論 var m1 = 5; // int var n1 = "world"; // string Console.WriteLine(s); Console.WriteLine(c); Console.WriteLine(i1); Console.WriteLine(d); Console.WriteLine(f); Console.WriteLine(flag1); Console.WriteLine(m1); Console.WriteLine(n1); //============================== // 演算 //============================== // + - * / % var x = 10; // int Console.WriteLine(x / 3); // 3 Console.WriteLine(x % 3); // 1 Console.WriteLine(x / 3.0); // 3.333.... Console.WriteLine(x / (double)3); // 3.333.... // ++ -- var y = 5; y++; Console.WriteLine(y); // 6 y--; Console.WriteLine(y); // 5 var z = 6; // z = z + 10; z += 10; // AND OR NOT // && || ! var flag = true; Console.WriteLine(!flag); //============================== // 文字列 //============================== Console.WriteLine("hello " + "world"); // \n, \t 改行、タブ Console.WriteLine("hell\no wo\trld"); var name1 = "taguchi"; var score1 = 52.3; Console.WriteLine(string.Format("{0} [{1}]", name1, score1)); // taguchi [52.3] Console.WriteLine($"{name1} [{score1}]"); //C# 6以降 Console.WriteLine($"{name1, -10} [{score1, 10}]"); Console.WriteLine($"{name1, -10} [{score1, 10:0.00}]"); Console.WriteLine($"{name1, -10} [{score1 + 25, 10:0.00}]"); //============================== // if //============================== // var score2 = int.Parse(Console.ReadLine()); var score2 = int.Parse("90"); // > >= < <= == != if (score2 > 80) { Console.WriteLine("Great!"); } else if (score2 > 60) { Console.WriteLine("Good!"); } else { Console.WriteLine("so so ...!"); } Console.WriteLine((score2 > 80) ? "Great" : "so so ..."); //============================== // switch //============================== // var signal = Console.ReadLine(); var signal = "red"; switch (signal) { case "red": Console.WriteLine("Stop!"); break; case "blue": case "green": Console.WriteLine("Go!"); break; case "yellow": Console.WriteLine("Caution!"); break; default: Console.WriteLine("wrong signal!"); break; } //============================== // while //============================== // var i2 = 0; var i2 = 100; while (i2 < 10) { Console.WriteLine($"loop:{i2}"); i2++; } do { Console.WriteLine($"loop2:{i2}"); i2++; } while (i2 < 10); //============================== // for //============================== // continue それ以降の処理を中止して次のループへ // break ループ自体を抜ける for (int i = 0; i < 10; i++) { if (i == 3) { continue; } if (i == 5) { break; } Console.WriteLine(i); } //============================== // 配列 //============================== // 配列 int[] scoresA1 = new int[3]; scoresA1[0] = 10; scoresA1[1] = 30; scoresA1[2] = 20; int[] scoresA2 = new int[] { 10, 30, 20 }; int[] scoresA3 = { 10, 30, 20 }; var scoresA4 = new[] { 10, 30, 20 }; scoresA4[1] = 40; Console.WriteLine(scoresA4[1]); Console.WriteLine(scoresA2); Console.WriteLine(scoresA3); //============================== // foreach //============================== var scoresB1 = new[] { 10, 30, 20 }; // for (int i = 0; i < scores.Length; i++) { // Console.WriteLine(scores[i]); // } foreach (int score in scoresB1) { Console.WriteLine(score); } //============================== // メソッド //============================== SayHi1(); Console.WriteLine(SayHi2()); Console.WriteLine(SayHi3()); SayHi4("Tom", 30); // tom 30 SayHi4("Bob"); // bob 23 SayHi4(age: 26, name: "Steve"); // steve 26 //============================== // クラス //============================== User user = new User(); // インスタンス Console.WriteLine(user.name); // me user.SayHi(); // hi! me user.name = "taguchi"; user.SayHi(); // hi! taguchi User tom = new User("Tom"); tom.SayHi(); User user2 = new User(); user2.SayHi(); AdminUser bob = new AdminUser("Bob"); bob.SayHi(); bob.SayHello(); //============================== // プロパティ //============================== Staff staff = new Staff(); Console.WriteLine(staff.Name); staff.Name = "taguchi"; Console.WriteLine(staff.Name); staff.Post = "Chief "; Console.WriteLine(staff.Post); //============================== // インデクサ //============================== Team giants = new Team(); giants[0] = "taguchi"; giants[1] = "fkoji"; giants[2] = "dotinstall"; Console.WriteLine(giants[1]); User.GetCount(); // 0 User userA1 = new User(); User userA2 = new User(); User userA3 = new User(); User.GetCount(); // 3 Console.WriteLine(userA1); Console.WriteLine(userA2); Console.WriteLine(userA3); //============================== // 抽象クラス //============================== Japanese aki = new Japanese(); aki.SayHi(); American mike = new American(); mike.SayHi(); //============================== // インターフェース //============================== Partner partner = new Partner(); partner.Share(); //============================== // ジェネリック //============================== MyData <string> s1 = new MyData <string>(); s1.GetThree("hello"); MyData <double> g1 = new MyData <double>(); g1.GetThree(23.3); MyInteger mi = new MyInteger(); mi.GetThree(55); //============================== // 名前空間 //============================== DotinstallNamespace.Player player1 = new DotinstallNamespace.Player(); Player player2 = new Player(); //using宣言しておけば、namespace省略可。 player1.SayHi(); player2.SayHi(); //============================== // 構造体 //============================== Point p1 = new Point(5, 3); Point p2 = new Point(12, 4); p1.GetInfo(); p2.GetInfo(); //============================== // 列挙型 //============================== Direction dir = Direction.Right; Console.WriteLine((int)Direction.Right); switch (dir) { case Direction.Stay: // そのまま break; case Direction.Right: // 右へ break; case Direction.Left: // 左へ break; } //============================== // 例外 //============================== MyExceptionPractice.Div(10, 0); MyExceptionPractice.Div(10, -3); //============================== // デリゲート //============================== MyDelegate ShowMessage; ShowMessage = SayHiFromDeligater; // デリゲートにメソッドを登録 ShowMessage += SayHelloFromDeligater; //メソッドを追加(マルチキャストデリゲート) ShowMessage -= SayHelloFromDeligater; //登録の解除 ShowMessage(); // 実行 //============================== // 匿名メソッド //============================== MyDelegate ShowMessage2; ShowMessage2 = delegate { Console.WriteLine("hi!(Anonymous methods)"); }; ShowMessage2(); //============================== // ラムダ式 //============================== MyDelegate ShowMessage3; // ラムダ式: 引数 => 処理 ShowMessage3 = () => { Console.WriteLine("hi!(Lambda expression)"); }; ShowMessage3 += () => Console.WriteLine("hello!(Lambda expression)"); ShowMessage3(); //============================== // イベント //============================== MyButton btn = new MyButton(); // メソッドを登録できる(以下ではラムダ式を使用している) btn.MyEvent += () => Console.WriteLine("Button Clicked!"); btn.OnClicked(); //============================== // Collection // - List(データの集合) // - HashSet(順番を持たない、かつ重複を許さないデータの集合。順番を指定してアクセスする事はできない。) // - Dictionary(キーと値でデータを管理していくデータの集合) //※要using System.Collections.Generic; //============================== //------------ // List //------------ List <int> scoresA = new List <int>(); scoresA.Add(30); scoresA.Add(80); scoresA.Add(60); List <int> scoresB = new List <int>() { 30, 80, 60 }; scoresB[1] = 100; Console.WriteLine(scoresB.Count); foreach (var score in scoresB) { Console.WriteLine(score); } //------------ // HashSet //------------ HashSet <int> answers = new HashSet <int>() { 3, 5, 8, 5 }; //重複分は無視される answers.Add(10); // 3, 5, 8, 10 answers.Remove(3); // 5, 8, 10 Console.WriteLine(answers.Contains(3)); // false foreach (var answer in answers) { Console.WriteLine(answer); } //------------ // Dictionary //------------ Dictionary <string, int> registrants = new Dictionary <string, int>() { { "taguchi", 50 }, { "fkoji", 80 }, }; registrants.Add("dotinstall", 40); Console.WriteLine(registrants["fkoji"]); // 80 registrants["taguchi"] = 60; foreach (KeyValuePair <string, int> registrant in registrants) { Console.WriteLine($"{registrant.Key}: {registrant.Value}"); } //============================== // LINQ //============================== //要 using System.Linq; List <double> prices = new List <double>() { 53.2, 48.2, 32.8 }; //------------ // SQL //------------ var resultsA = from price in prices where price * 1.08 > 50.0 select price * 1.08; foreach (var result in resultsA) { Console.WriteLine(result); } //------------ // Method //------------ var results = prices .Select(n => n * 1.08) .Where(n => n > 50.0); foreach (var result in results) { Console.WriteLine(result); } //-----< Sample01 >----- List <Customer> _customers = new List <Customer>(); _customers.Add(new Customer { Name = "Fukuzawa", Age = 35, IsMarried = true, }); _customers.Add(new Customer { Name = "Higuchi", Age = 28, IsMarried = true, }); _customers.Add(new Customer { Name = "Noda", Age = 42, IsMarried = false, }); _customers.Add(new Customer { Name = "Igawa", Age = 21, IsMarried = false, }); _customers.Add(new Customer { Name = "Sawada", Age = 31, IsMarried = true, }); Console.WriteLine("===================="); // All foreach (var customer in _customers) { Console.WriteLine(customer.Name); } Console.WriteLine("===================="); // フィルタリング1 foreach (var customer in _customers.Where(n => n.IsMarried)) { Console.WriteLine(customer.Name); } Console.WriteLine("===================="); // フィルタリング2 foreach (var customer in _customers .Where(n => n.IsMarried) .Where(n => n.Age > 30) ) { Console.WriteLine(customer.Name); } Console.WriteLine("===================="); }