C# 向C程序添加全局变量时必须删除[StatThread]?
我的代码有问题。我想这很简单,但我缺乏OOP和C方面的经验,所以我不得不问你 我的代码如下所示:C# 向C程序添加全局变量时必须删除[StatThread]?,c#,compiler-errors,C#,Compiler Errors,我的代码有问题。我想这很简单,但我缺乏OOP和C方面的经验,所以我不得不问你 我的代码如下所示: namespace RR { static class Program { [STAThread] private static string token; static void Main() { [...] } } } 问题是变量标记不起作用/无法编译。我想这个错
namespace RR
{
static class Program
{
[STAThread]
private static string token;
static void Main()
{
[...]
}
}
}
问题是变量标记不起作用/无法编译。我想这个错误很容易被发现,但是我已经尝试过任何版本的static、publicstatic和使用函数setter和getter来完成这项工作,但是没有任何效果。我发现了这个:,但后来我不得不删除[StatThread],我甚至不知道它是做什么的,所以我宁愿用另一种方式解决这个问题
当我在C 2012中创建一个新项目时,源代码是自动设置的
澄清:我如何在这样的静态类中使用公共变量而不必删除StatThread?[StatThread]是一个属性,与它下面的代码直接相关-将它放回原来的主函数上方,并将变量放在上面,这样就可以了
你是正确的,你需要用你建议的static关键字声明你的变量,[stathread]是一个属性,并且与它下面的代码直接相关-把它放回主函数原来的位置,把你的变量放在它上面,你就没事了 正确的是,您需要使用static关键字声明变量,正如您所建议的那样[StatThread]是方法的属性。它将需要保持在静态void Main之前。通常,最好的做法是不要在入口点中包含业务逻辑,而是从Main中创建工作类的新实例 如果您想编译它,请将[StatThread]移动到静态void Main的正上方,并更改私有静态字符串标记 [StatThread]是方法的属性。它将需要保持在静态void Main之前。通常,最好的做法是不要在入口点中包含业务逻辑,而是从Main中创建工作类的新实例
如果您想编译它,请将[StatThread]移动到静态void Main的正上方,并更改私有静态字符串标记 你的主方法中的Program p=new Program呢?错误是否不清楚?无法在静态类中声明实例成员…@L.B:正如我所写的,我也尝试过使用静态public[…],但是它也不起作用。你的主方法中的程序p=新程序呢?错误是否不清楚?无法在静态类中声明实例成员…@L.B:正如我所写的,我也尝试过静态公共[…],但它也不起作用。谢谢你,先生!你是对的,把主线程移到stathread下面修复了这个问题,静态变量就像我在internetz上发现的那样工作。我会在4分钟内接受:@L.B:这对初学者来说是正确的。。。。我认为问题在于其他方面,但在静态类中使用静态变量是可行的。问题是StatThread在这之前,它把事情搞砸了。@OptimusCrime但是这个答案没有提到任何关于静态类中的实例变量的问题。正如您已经注意到的那样,在类中移动STAThread属性是不够的。@L.B:不,但与私有静态字符串标记相结合;正如我在第一篇文章中所写,它就像一个符咒。@L.B-我以为他已经解决了静电问题,但我已经澄清了,谢谢你,先生!你是对的,把主线程移到stathread下面修复了这个问题,静态变量就像我在internetz上发现的那样工作。我会在4分钟内接受:@L.B:这对初学者来说是正确的。。。。我认为问题在于其他方面,但在静态类中使用静态变量是可行的。问题是StatThread在这之前,它把事情搞砸了。@OptimusCrime但是这个答案没有提到任何关于静态类中的实例变量的问题。正如您已经注意到的那样,在类中移动STAThread属性是不够的。@L.B:不,但与私有静态字符串标记相结合;正如我在第一篇文章中所写,它就像一个符咒。@L.B-我以为他已经解决了静态问题,但我已经在上面澄清了