Exemple #1
0
        static void Main(string[] args)
        {
            var ci = new Circle(5, new Circle(3));
            Console.WriteLine(ci.GetArea());
            Console.WriteLine(ci.Child?.Child?.GetArea() ?? 0); // ……6 4と同様、null伝播演算子を用いた例。
                                                                //       この場合、内円の内円は設定されておらず、nullを返すため、「0」が出力される。
            Console.WriteLine(ci.GetAreaWithoutChildArea());
            Console.WriteLine(ci.ToString());

            /* 実行結果
                78.5398163397448
                0
                50.2654824574367
                02時13分31秒 - Area: 78.5398163397448 , HasChild: Yes
            */
        }
Exemple #2
0
          GetArea() - Child?.GetArea() ?? 0;        // ……4 3と同様に式形式で表現した関数を宣言する。
                                                    //       null伝搬演算子(?.)を用いて、Childプロパティの値がnullでない場合は、
                                                    //       外円の面積から内円の面積を除いた面積を求める。
                                                    //       内円が設定されていない場合は、GetArea()と同様の挙動を示す。

        public Circle(int radius, Circle child = null)
        {
            this.Radius = radius;
            this.Child = child;
        }