Visual Studio 2015突然不想在类中创建新变量



我几乎整天都在为这个问题而苦苦挣扎,我在互联网上找不到任何答案。我知道这个修复只是为了转移一件小事,但我不知道是哪一件。卸载(使用TotalUninstaller)的Visual Studio(社区2015)没有解决我的问题。这就是介绍的话...

我无法在类中定义任何对象/变量。无论是在新项目中还是在现有项目中都没有关系。

现有项目中类的示例代码段:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AGDS
{
    public class Similarity
    {
        public string index;
        public double distance;
        public double similarityRate;
        public Similarity(string index, double distance)
        {
            this.index = index;
            this.distance = distance;
        }
        // NEW PART WHICH HAS BEEN ADDED
        int b;
        b = 100;
        // END
    }
}

当我尝试构建时,我收到以下错误

Error   CS1519  Invalid token '=' in class, struct, or interface member declaration AGDS
Error   CS0103  The name 'b' does not exist in the current context. AGDS

此外,在程序.cs类中的任何项目中,我都可以定义。我很奇怪,安装本地SQL服务器可能会破坏某些东西......有没有人知道可能出现什么问题以及如何解决它?

是否可以声明变量,然后在函数外部为这些变量赋值?

尝试这样做:

public class Similarity
{
    public string index;
    public double distance;
    public double similarityRate;
    public Similarity(string index, double distance)
    {
        this.index = index;
        this.distance = distance;
    }
    int b = 100;  //new code
}
您可以

像这样为b成员设置默认值:int b = 100; . 但是,在成员声明之后,您将无法为函数外部的成员b赋值。 如果要为成员分配值,应确定何时应执行此操作。 因此,如果要在创建 Similarity 实例时设置 b 值,可以在类构造函数中分配它:

int b;
public string index;
public double distance;
public double similarityRate;
public Similarity(string index, double distance)
{
    this.index = index;
    this.distance = distance;
    b = 100;
}

附带说明一下,如果您想将b声明为公共财产,正确的方法是 public int b {get; set;} . 从 C# 6 开始,还可以直接将默认值设置为 a 属性:public int b {get; set;} = 100;

Error   CS1519  Invalid token '=' in class, struct, or interface member declaration AGDS
Error   CS0103  The name 'b' does not exist in the current context. AGDS

这两个消息有点模糊,但它们是正确的。 在代码示例中,它试图充当方法或函数中的代码。 将相同的代码放入方法或函数中,它将起作用。

如果您打算将 b 作为字段或属性...可以将声明和赋值缩小到一行。对于属性,请使用 Getters 和 Settters。

最新更新