C# 从多重构造函数获取值
以下是示例代码:C# 从多重构造函数获取值,c#,class,constructor,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
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)
中获取字符串a的值,并将其显示给构造函数Class1(bool)
。我如何才能做到这一点?使字符串成为一个
静态字符串。这样,Class1的所有实例都引用相同的字符串。将字符串设为静态。这样,Class1的所有实例都引用相同的字符串。这应该是可行的,但我认为您不应该这样做
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();
}
}
}
这应该行得通,但我认为你不应该这么做
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();
}
}
}
在方法调用中(或在构造函数中)将myClass1传递给myClass2
很难说该做什么,因为1,a,结束,检查。它们对我来说毫无意义。在方法调用中(或在构造函数中)将myClass1传递给myClass2
很难说该做什么,因为1,a,结束,检查。它们对我来说毫无意义。您有两个不同的Class1实例:myClass1和MyClass2
如果需要跨实例共享“a”,则可以将其设置为静态
这样,在Class1的任何实例中设置“a”将应用于所有实例。您有两个不同的Class1实例:myClass1和MyClass2
如果需要跨实例共享“a”,则可以将其设置为静态
这样,在Class1的任何实例中设置“a”将适用于所有实例。将其显示到Class1(bool)
控制台是什么意思。WriteLine(a)代码>因为它只是给我一个空白的结果你为什么要这样做?这两个对象应该是独立的-为什么newclass1(true)
要知道测试“
字符串的存在?这里的问题有一些基本的问题,这意味着需要一种不同的设计。您将它显示到Class1(bool)
Console.WriteLine(a)代码>因为它只是给我一个空白的结果你为什么要这样做?这两个对象应该是独立的-为什么newclass1(true)
要知道测试“
字符串的存在?这里的问题有一些基本问题,这意味着需要不同的设计。它回答了OPs问题,但在我看来,这只是掩盖了一些裂缝——我认为这是一个明智的做法毫无意义——如果我想要多个具有不同字符串的Class
对象,该怎么办?穿线呢?安全性(不涉及其他地方的字符串)?这不是对答案的批评——更多的是问题的错误,没有明确说明什么和为什么……它回答了OPs问题,但在我看来,这只是掩盖了一些漏洞——这对我来说是没有意义的,这是一件明智的事——如果我想要多个类具有不同字符串的对象怎么办?穿线呢?安全性(不涉及其他地方的字符串)?这并不是对答案的批评——更多的是问题的错误在于没有明确说明什么和为什么……您的代码无法编译,因为您忘记了在if(check)
之后的大括号。应该是if(check){
。我认为您不应该尝试从嵌套类调用Main!!您的代码不会编译,因为您忘记了if(check)
之后的大括号。应该是if(check){
。我认为您不应该尝试从嵌套类调用Main!!