C#

DAG

using System; using System.Collections.Generic; using System.Linq; namespace DAG { public static class DAG { static void Main(string[] args) { var deps = new List<Tuple<char, char>>(); #if false deps.Add(new Tuple<char, char>('A', 'B')); deps.Add(new Tuple<char, char>('B', 'C')); </char,></char,></tuple<char,>…

コマンドライン引数の解析

自力できちんと書こうと思うと面倒なので、NDesk.Optionsで済ませるなど。 public string ExeDir { get; private set; } public bool DebugMode { get; private set; } static void Main(string[] args) { var op = new NDesk.Options.OptionSet() { { "d|de…

拡張メソッドをもっと気楽に使うことにした

C#

今まで拡張メソッドは使わないで書いていたけど、どうせ余所に公開するものでもないし、私が使うだけのものだから気楽に使って書いていく方針に変更。使えるところではParallel Linqも使って書いてるし、いまさら拡張メソッドを拒む理由もなかったのよね。

using System; namespace Test { class Test { static void Main() { string s1, s2; s1 = "foo"; s2 = "bar"; Console.WriteLine("s1: {0}, s2: {1}", s1, s2); Swap(ref s1, ref s2); Console.WriteLine("s1: {0}, s2: {1}", s1, s2); int i1, i2; i1 = 0;…

累乗の演算子はないのかー

C#

タイトルそのまま。 // xのy乗を求める。 double x = 2; double y = 2; double d = System.Math.Pow(x, y); // でも今回書いてたコードだとintで欲しかったのでキャスト int i = (int)Math.Pow(x, y);

C#で多重ループを抜けようと思ったらgotoしないといけないのね

C#

Perlで考えてると OUTER: while (1) { my $c = 0; INNER: while (1) { $c++; last OUTER if $c == 10; } } こんな感じにループ自体にラベルを付けておいて、条件を満たしたらlast LABELなんてやって多重ループから抜けるなんてことができたけど、C#だとこう…