如何在c#Windows应用程序中将字符串值保存到另一个字符串

如何在c#Windows应用程序中将字符串值保存到另一个字符串,c#,visual-studio,C#,Visual Studio,我在上面的类Form1:Form中定义了一个用户名 而用户名的定义如上所述: string user_name = "Rammy"; 我想在下面的一行中使用这个用户名,但它没有执行,并给出错误“字段初始值设定项不能引用非静态字段、方法或属性” 有人能帮忙吗?我使用的是visual studio 2012。将行下移到构造函数或方法 string copyright_bottom_text = user_name; 实例字段不能用于初始化其他实例字段 在方法之外。如果您试图在外部初始化变量 方

我在上面的类Form1:Form中定义了一个用户名

而用户名的定义如上所述:

string user_name = "Rammy";
我想在下面的一行中使用这个用户名,但它没有执行,并给出错误“字段初始值设定项不能引用非静态字段、方法或属性”


有人能帮忙吗?我使用的是visual studio 2012。

将行下移到构造函数或方法

string copyright_bottom_text = user_name;

实例字段不能用于初始化其他实例字段 在方法之外。如果您试图在外部初始化变量 方法,考虑在类内执行初始化。 构造器。有关更多信息,请参阅方法(C#编程指南)


移动到行下方的构造函数或方法

string copyright_bottom_text = user_name;

实例字段不能用于初始化其他实例字段 在方法之外。如果您试图在外部初始化变量 方法,考虑在类内执行初始化。 构造器。有关更多信息,请参阅方法(C#编程指南)


您可能试图从静态方法访问user_name变量。 有静态变量和实例变量/方法。静态的属于类本身,而不属于从该类创建的实例。所有实例都可以通过类访问数据,但是如果您更改了它,那么所有实例的数据都会更改——当然,因为它属于类。 这就是它的样子: 分类{ 私有静态字符串StaticString=“我属于该类”; ... //建造师 ... } 然后,在创建此类的实例时: 某物s=新的某物(); 你不能说 字符串x=s.StaticString; 因为它属于类“Something”,而不是实例“s”。 你可以这样说 字符串x=Something.StaticString

在您的示例中,您尝试从静态方法获取实例变量。这与上述相反: 用户名在每个实例中都是唯一的(例如,您可以有一个名为Joe的实例,一个名为Robert的实例,等等)。但是你试着在课堂上使用它。该类对基于它创建的实例一无所知。 这就像当你给你的狗取一个名字时,所有的狗都应该被称为同一个名字。它不起作用了

尝试使用静态字符串作为用户名,这样它将被编译,但不会正确。 相反,将变量保持为实例变量(非静态),并在实例方法中使用它(非静态)。请记住,可以在实例方法中使用静态方法和变量,但不能在静态方法中使用实例变量或methnd


我希望这有帮助。:)

您可能试图从静态方法访问user_name变量。 有静态变量和实例变量/方法。静态的属于类本身,而不属于从该类创建的实例。所有实例都可以通过类访问数据,但是如果您更改了它,那么所有实例的数据都会更改——当然,因为它属于类。 这就是它的样子: 分类{ 私有静态字符串StaticString=“我属于该类”; ... //建造师 ... } 然后,在创建此类的实例时: 某物s=新的某物(); 你不能说 字符串x=s.StaticString; 因为它属于类“Something”,而不是实例“s”。 你可以这样说 字符串x=Something.StaticString

在您的示例中,您尝试从静态方法获取实例变量。这与上述相反: 用户名在每个实例中都是唯一的(例如,您可以有一个名为Joe的实例,一个名为Robert的实例,等等)。但是你试着在课堂上使用它。该类对基于它创建的实例一无所知。 这就像当你给你的狗取一个名字时,所有的狗都应该被称为同一个名字。它不起作用了

尝试使用静态字符串作为用户名,这样它将被编译,但不会正确。 相反,将变量保持为实例变量(非静态),并在实例方法中使用它(非静态)。请记住,可以在实例方法中使用静态方法和变量,但不能在静态方法中使用实例变量或methnd


我希望这有帮助。:)

你们可以分享你们的整个类代码吗?你们可以分享你们的整个类代码,但OP并没有使用静态方法。它是一个字段initialzerop,但未使用静态方法。它是一个字段初始化器
public class MyClass
{
   public int i = 5;
   public int j = i;  // CS0236
   public int k;      // initialize in constructor

   MyClass()
   {
      k = i;
   }

   public static void Main()
   {
   }
}