从多个构造函数中获取值

时间:2011-01-18 06:58:34

标签: c# class constructor

以下是示例代码:

class Class1
{
    string a;

    public Class1(string over) : base()
    {
       this.a = over;
       Console.WriteLine(a);
    }

    public Class1(bool check)
    {
       if(check)
         Console.WriteLine(a);
    }
}

class Program
{
    static void Main(string[] args)
    {
        Class1 myClass1 = new Class1("test");
        Class1 myClass2 = new Class1(true);
        Console.ReadLine();
    }
}

我想要发生的是从第1个构造函数Class1(string)获取 string a 的值,并将其显示给Constructor Class1(bool)。我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

您有两个不同的Class1实例:myClass1和MyClass2 如果'a'需要跨实例共享,那么您可以将其设置为静态。

这样,在Class1的任何实例中设置'a'将适用于所有实例。

答案 1 :(得分:1)

string a成为静态。这样,Class1的所有实例都引用相同的字符串。

答案 2 :(得分:0)

这应该有用,但我不认为你应该这样做。

class Class1 {     

    static string a;  

    public Class1(string over) : base() {        
        a = over;        
        Console.WriteLine(a);     
    }      
    public Class1(bool check)     {        
        if(check)          
            Console.WriteLine(a);     
        } 
    }  

    class Program {     
        static void Main(string[] args)     {         
            Class1 myClass1 = new Class1("test");         
            Class1 myClass2 = new Class1(true);         
            Console.ReadLine();     
        } 
    } 
}

答案 3 :(得分:0)

在方法调用中(或在构造函数中)将myClass1传递给myClass2

很难说是做什么因为Class1,a,over,check。它们对我没有意义。