C#控制台中的访问值
我想访问main中读取和写入的值。 这可能吗?我用它作为一个对象,但我知道对象会自动清除C#控制台中的访问值,c#,console,C#,Console,我想访问main中读取和写入的值。 这可能吗?我用它作为一个对象,但我知道对象会自动清除 class Program { string read= String.Empty; string write= String.Empty; static void Main(string[] args) { Anymethod(); Console.WriteLine(**
class Program
{
string read= String.Empty;
string write= String.Empty;
static void Main(string[] args)
{
Anymethod();
Console.WriteLine(**read +write** ); **// **error I want to access the values of read and write from anymethod****
}
public static string Anymethod()
{
Program P = new Program();
Program P1 = new Program();
p.read = "ASD"
p1.write="asdas";
}
}
我想你想要实现这样的东西
public class Program
{
static string read = string.Empty;
static string write = string.Empty;
static void Main(string[] args)
{
read = asad;
write = ASAD;
Console.WriteLine(read + write);
}
}
替代方法
试试这个
public class Program
{
public string read = string.Empty;
public string write = string.Empty;
static void Main(string[] args)
{
Console.WriteLine(AnyMethod().read + AnyMethod().write);
}
public static Program AnyMethod()
{
Program p = new Program();
p.read = "Asad";
p.write = "ASAD";
return p;
}
}
我想你想要实现这样的东西
public class Program
{
static string read = string.Empty;
static string write = string.Empty;
static void Main(string[] args)
{
read = asad;
write = ASAD;
Console.WriteLine(read + write);
}
}
替代方法
试试这个
public class Program
{
public string read = string.Empty;
public string write = string.Empty;
static void Main(string[] args)
{
Console.WriteLine(AnyMethod().read + AnyMethod().write);
}
public static Program AnyMethod()
{
Program p = new Program();
p.read = "Asad";
p.write = "ASAD";
return p;
}
}
您无法访问th
p.Read
和p.Write
,因为它们仅在方法Anymethod()中可见
因此,您有两种可能:作为静态的delcareRead
和Write
static string read=string.Empty;
static sring write=string.Empty;
您可以访问以下字段:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
2) 可以将p和P1作为ref参数传递
public static string Anymethod(ref Program P, ref Program P1)
{
P = new Program();
P1 = new Program();
p.read = "ASD"
p1.write="asdas";
}
大体上,您可以这样做:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
您无法访问thp.Read
和p.Write
,因为它们仅在方法Anymethod()中可见
因此,您有两种可能:作为静态的delcareRead
和Write
static string read=string.Empty;
static sring write=string.Empty;
您可以访问以下字段:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
2) 可以将p和P1作为ref参数传递
public static string Anymethod(ref Program P, ref Program P1)
{
P = new Program();
P1 = new Program();
p.read = "ASD"
p1.write="asdas";
}
大体上,您可以这样做:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
让我首先解释什么是“静态”成员
“static”关键字可以使一个、类、方法、变量成为静态的。这意味着可以访问每个静态值,而无需创建类的实例。现在让我谈谈你的代码
string read=string.empty;
string write=string.empty;
首先声明了两个非静态值,这意味着您可以在创建“Program”类的实例时设置或获取这些值
在这里,您创建了两个新的Program类实例,这没有什么问题,但是您看到您正在做什么了吗?在p的实例中,您将read变量(一个实例值)设置为值“ASD”,这意味着只有在类“p”的实例中,值“read”才具有值“ASD”。实例“p”中的write值仍然为空,因为您没有设置它
现在您还创建了一个P1实例,这里您将“实例值write”设置为“asdas”,这意味着只有对于实例P1,write成员才具有值“asdas”,而read成员保持为空,因为它是一个新实例
让我们看看您迄今为止所做的全部工作:
实例p现在看起来如下所示:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
p、 read=“ASD”
p、 write=“”
P1的实例现在如下所示:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
p1.read=“”
p1.write=“asdas”
现在,在main方法中,您试图访问在两个不同实例中设置的这两个值,这是没有意义的。如果您运行下面的代码,您可能会理解我在完整解释中要说的内容
请理解,您的问题的解决方案在此代码下。这只是我试图在上面解释的一个例子。
class Program
{
private static Program P;
private static Program P1;
string read = string.Empty;
string write = string.Empty;
static void Main(string[] args)
{
Anymethod();
Console.WriteLine("==================P instance value=================");
Console.WriteLine("Value read of instance 'P' P.read ='{0}'", P.read);
Console.WriteLine("Value write of Instance 'P' P.write='{0}'", P.write);
//Same as the above code, only not using a String format
// Console.WriteLine("Value read of instance 'P' P.read ='" + P.read + "'");
// Console.WriteLine("Value write of Instance 'P' P.write='" + P.write + "'");
Console.WriteLine("==================P1 instance value===================");
Console.WriteLine("Value read of instance 'P1' P1.read ='{0}'", P1.read);
Console.WriteLine("Value write of Instance 'P1' P1.write='{0}'", P1.write);
//Same as the above code, only not using a String format
// Console.WriteLine("Value read of instance 'P1' P.read ='" + P1.read + "'");
// Console.WriteLine("Value write of Instance 'P1' P.write='" + P1.write + "'");
Console.WriteLine("==============Together=================");
Console.WriteLine(P.read + P1.write);
Console.ReadLine();
}
public static void Anymethod()
{
P = new Program();
P1 = new Program();
P.read = "Hello ";
P1.write = " World";
}
}
最后,在一堆文本之后,我将发布一个解决方案
解决方案:
class Program
{
public static string read = String.Empty; // Static, what does mean that every one can access it without making a instance
public static string write = String.Empty; // Static, what does mean that every one can access it without making a instance
static void Main(string[] args)
{
Anymethod();
Console.WriteLine(read + write);
Console.ReadLine();
}
public static void Anymethod()
{
Program.read = "Hello "; // Access the public static variable read in the ProgramClass
Program.write = "World"; // Access the public static variable write in the Program Class
}
}
让我首先解释什么是“静态”成员
“static”关键字可以使一个、类、方法、变量成为静态的。这意味着可以访问每个静态值,而无需创建类的实例。现在让我谈谈你的代码
string read=string.empty;
string write=string.empty;
首先声明了两个非静态值,这意味着您可以在创建“Program”类的实例时设置或获取这些值
在这里,您创建了两个新的Program类实例,这没有什么问题,但是您看到您正在做什么了吗?在p的实例中,您将read变量(一个实例值)设置为值“ASD”,这意味着只有在类“p”的实例中,值“read”才具有值“ASD”。实例“p”中的write值仍然为空,因为您没有设置它
现在您还创建了一个P1实例,这里您将“实例值write”设置为“asdas”,这意味着只有对于实例P1,write成员才具有值“asdas”,而read成员保持为空,因为它是一个新实例
让我们看看您迄今为止所做的全部工作:
实例p现在看起来如下所示:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
p、 read=“ASD”
p、 write=“”
P1的实例现在如下所示:
Program.read
Program.write
static void Main(string[] args)
{
Program P,P1;
Anymethod(ref P,ref P1);
console.writeline(P.Read,P1.Write ); **// **error I want to access the values of read and write from anymethod****
}
p1.read=“”
p1.write=“asdas”
现在,在main方法中,您试图访问在两个不同实例中设置的这两个值,这是没有意义的。如果您运行下面的代码,您可能会理解我在完整解释中要说的内容
请理解,您的问题的解决方案在此代码下。这只是我试图在上面解释的一个例子。
class Program
{
private static Program P;
private static Program P1;
string read = string.Empty;
string write = string.Empty;
static void Main(string[] args)
{
Anymethod();
Console.WriteLine("==================P instance value=================");
Console.WriteLine("Value read of instance 'P' P.read ='{0}'", P.read);
Console.WriteLine("Value write of Instance 'P' P.write='{0}'", P.write);
//Same as the above code, only not using a String format
// Console.WriteLine("Value read of instance 'P' P.read ='" + P.read + "'");
// Console.WriteLine("Value write of Instance 'P' P.write='" + P.write + "'");
Console.WriteLine("==================P1 instance value===================");
Console.WriteLine("Value read of instance 'P1' P1.read ='{0}'", P1.read);
Console.WriteLine("Value write of Instance 'P1' P1.write='{0}'", P1.write);
//Same as the above code, only not using a String format
// Console.WriteLine("Value read of instance 'P1' P.read ='" + P1.read + "'");
// Console.WriteLine("Value write of Instance 'P1' P.write='" + P1.write + "'");
Console.WriteLine("==============Together=================");
Console.WriteLine(P.read + P1.write);
Console.ReadLine();
}
public static void Anymethod()
{
P = new Program();
P1 = new Program();
P.read = "Hello ";
P1.write = " World";
}
}
最后,在一堆文本之后,我将发布一个解决方案
解决方案:
class Program
{
public static string read = String.Empty; // Static, what does mean that every one can access it without making a instance
public static string write = String.Empty; // Static, what does mean that every one can access it without making a instance
static void Main(string[] args)
{
Anymethod();
Console.WriteLine(read + write);
Console.ReadLine();
}
public static void Anymethod()
{
Program.read = "Hello "; // Access the public static variable read in the ProgramClass
Program.write = "World"; // Access the public static variable write in the Program Class
}
}