class Program
{
public string SSN { get; set; }
// Return a hash code based on a point of unique string data.
public override int GetHashCode()
{
return SSN.GetHashCode();
}
public static void Main(string[] args)
{
Console.WriteLine("{0},SSN");
}
}
当我在Visual Studio中键入上述代码时,它总是显示错误。主方法中的SSN无法访问?为什么这样?属性是否在同一类中不可访问?我尝试使用 this.SSN ,但没有结果。救命! 我是编程新手。谢谢!
答案 0 :(得分:1)
如果将其设置为静态,也可以从Main方法访问SSN的值。你也有字符串格式错误的引号 - 字符串是第一个参数,引号应该在逗号和变量名之前结束。
试试这个:
public class Program
{
public static string SSN { get; set; }
public static void Main(string[] args)
{
SSN = "212";
Console.WriteLine("{0}", SSN);
}
}
答案 1 :(得分:0)
您的代码有两个问题。如果您要在SSN
方法中使用它,则static
必须为Main
。其中两个,Console.WriteLine("{0},SSN")
应为Console.WriteLine("{0}", SSN)
。
namespace ConsoleApplication6
{
class Program
{
public static string SSN { get; set; }
// Return a hash code based on a point of unique string data.
public override int GetHashCode()
{
return SSN.GetHashCode();
}
public static void Main(string[] args)
{
Console.WriteLine("{0}", SSN);
}
}
}
答案 2 :(得分:0)
您的代码中存在两个问题。
在Console.Writeline
中,您指定了字符串格式化程序的错误语法。
Console.WriteLine("{0}",SSN);
要传递给格式的字符串应该在字符串引号之外,并以逗号开头。
public string SSN { get; set; }
您无法在静态方法中访问非静态变量。
因此请指定关键字static
public static string SSN { get; set; }
答案 3 :(得分:-1)
尝试:
namespace ConsoleApplication6
{
class Program
{
public string SSN { get; set; }
// Return a hash code based on a point of unique string data.
public override int GetHashCode()
{
return SSN.GetHashCode();
}
public static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine("{0}",p.SSN);
}
}
}
以下代码背后的解释是您需要在访问任何属性和/或方法之前实例化 Program 类,因为它未被声明为静态。
答案 4 :(得分:-1)
必须是静态的
public static string SSN { get; set; }
或类
中的新实例classname c1 = new classname();
c1.SSN;