在静态方法中使用字符串变量和字符串变量
本文关键字:字符串 变量 静态方法 | 更新日期: 2023-09-27 18:22:05
考虑,类测试
步骤1->
public class test
{
private string temp_err=string.Empty;
public static void GetResult()
{
temp_err="abc";
}
}
步骤2->
public class test
{
private String temp=string.Empty;
public static void GetResult()
{
temp="abc";
}
}
在步骤1的情况下,将出现错误:无法访问静态上下文中的非静态字段
但当我像第2步那样更改代码时,一切都很好。
请解释string和string之间的区别。。
在谷歌上,有人写道字符串是系统的别名。字符串描述没有这样的区别。
请大家在选择这个可能重复的问题之前。阅读该网址上给出的全部41个答案,然后做出一些决定。我在问静态方法中的行为。请再次阅读问题
您必须使字段static
能够在static
方法中访问,您不能将非静态字段传递给静态方法:
private static string temp_err=string.Empty;
private static String temp=string.Empty;
字符串和string之间没有区别,但在调用字符串类的静态方法的情况下,使用类名string(如string.Format.)可能会被认为是更好的风格
正如您已经发现的,string
和String
之间没有实现差异,因为string
只是.NET类System.String
的别名。这意味着它是一个C#语言关键字。
使用string
作为语言关键字使其看起来像C#内置类型(在VisualStudio中,is将像其他C#关键字一样着色)。事实上,尽管字符串是一个类对象,但它有一些特殊之处,因为编译器使用值语义进行组合,使其更直观。
关于您的代码:第二种情况与第一种情况有相同的错误。也许在你的真实代码中,你有一个本地或全局变量,也被命名为temp,它会隐藏你的memeber变量,因此它不会产生错误。