コンストラクタの中でメンバクラスをnewしてはだめなのですか?
C#2008EXPRESS EDITIONです。
以下のようなソースで、★1ではT.aがちゃんと生成されてるのに、★2のようにすると、Tの各メンバがNULLになってしまいます。
こういうやり方は、だめなのでしょうか?デバッガでは、引数無しのコンストラクタの内容を実行しているようなのですが・・・
なお、当方はCは理解していますが、C++を随分前に落伍した程度の者で、今回C#に挑戦してみようとしています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
public class point
{
public double x;
public double y;
public point(double a, double b) { x = a; y = b; }
}
public class Triangle
{
public point a;
public point b;
public point c;
public Triangle() {
point a = new point(0,0);
point b = new point(0,0);
point c = new point(0,0);
}
public Triangle(point a,point b,point c){
this.a = a;
this.b = b;
this.c = c;
}
}
static void Main(string[] args)
{
★1 Triangle T = new Triangle(new point(1,2),new point(3,4),new point(5,6));
★2 Triangle T = new Triangle();
Console.WriteLine("T.a.x={0} T.a.y={1}",T.a.x,T.a.y);
}
}
}
すみません、インデントを付ける方法がわからなくて、見にくいソースになってしまって。
お礼
早速のご回答、ありがとうございました。 エラーの行を private: static List<Point>^ pts = new List<Point>(); として、コンパイルしたところ通りました。 staticキーワードが必要だったようです。