2017-03-05 99 views
0

我有两个类,class Aclass Bc#中的成员初始化

public class A 
{ 
    public int someNumber; 

    public A(int a) 
    { 
     someNumber = a; 
    } 
} 

现在class B具有字段是class A一个对象。在C + +有可能这样做:

public class B 
{ 
    public A foo; 

    public B(int a) : foo(a) { } 
} 

但是这不工作在C#中。那么如何在C#中解决这个问题,而不使用class A中的默认构造函数。更确切地说,如何编写一个class B的构造函数,其参数为someNumber的值为foo

+1

这是不是真正的C++。你可以删除C++标签吗? –

回答

5

你可以尝试这样的事:

public class B 
{ 

    public A thing; 

    public B(int a) 
    { 
     thing = new A(a); 
    } 
} 
+0

我想你的意思是把'thing'而不是'A'作为作业。 –

+0

@MaxWeinzierl你血腥正确!我的错。谢谢 – Christos

+0

@克里斯托斯哦,好的,谢谢。我认为这是行不通的,因为我认为构造函数总是在构造函数的主体执行之前始终初始化所有类成员。如果某个成员没有默认构造函数,则会导致错误。 – Morten