[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プログラミング、3DCGとその他いろいろについて
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
C#7.0では気軽にtupleが使えるようになっています。
using System; class Program { static void Main() { (double x, double y) = GetPoint(); Console.WriteLine(x + ", " + y); } static (double, double) GetPoint() { return (2.0, 3.0); } }
※現時点ではビルドするのにこれが必要です。VisualStudio2017RCのNuGetからインストールします。
2, 3
すばらしい!System.Tupleをいちいち使っていた以前とは格段に書きやすくなっています!デリゲートがクロージャになったときのことを思い出します。
varを使うこともできます。
using System; class Program { static void Main() { (var x, var y) = GetPoint(); Console.WriteLine(x + ", " + y); } static (double, double) GetPoint() { return (2.0, 3.0); } }
2, 3
型をたくさん書くのがめんどうなら、こう書くこともできます:
using System; class Program { static void Main() { var (x, y) = GetPoint(); Console.WriteLine(x + ", " + y); } static (double, double) GetPoint() { return (2.0, 3.0); } }
2, 3
個人的にはこっちのほうが短くて良さそうです。
using System; class Program { static void Main() { var x = 10.0; var y = 100.0; (x, y) = GetPoint(); Console.WriteLine(x + ", " + y); } static (double, double) GetPoint() { return (2.0, 3.0); } }
2, 3
変数の再利用です。自前のものがあるならわざわざ新しく宣言する必要はありません。
using System; class Program { static void Main() { var point = GetPoint(); Console.WriteLine(point.x + ", " + point.y); } static (double x, double y) GetPoint() { return (2.0, 3.0); } }
2, 3
これは面白いですね。まるでxとyというフィールドを持った構造体を即席で作っているようです。