【问题标题】:s(String) is a 'field' but is used like a 'type' C#s(String) 是一个“字段”,但用作“类型”C#
【发布时间】:2014-07-23 15:25:58
【问题描述】:

我正在尝试为变量赋值,但出现编译错误:s(String) is a 'field' but is used like a 'type'

public class SForceTest
{
    String s = "";
    s = "asdsa";
 }

我能做些什么来解决这个问题?谢谢

【问题讨论】:

  • 您需要将这些行放在方法或属性中。他们不能在你的课堂上松散。
  • 你必须在一个方法中做到这一点。

标签: c# exception


【解决方案1】:

您只能在构造函数或方法之外创建成员(并初始化它们)。您需要将赋值放在构造函数或方法中:

public class SForceTest
{
    String s = "";

    public SForceTest()
    {
        s = "asdsa";
    }
}

【讨论】:

  • 为什么我不能在课堂上做作业?
  • @user3864408 因为 c# 规范是这么说的。可执行代码必须在成员内部(构造函数、方法、访问器、事件处理程序等)。您只能在类级别初始化成员。
  • 此外,构造函数之外的赋值与将其放入构造函数中的赋值相同。所以它实际上是在构造函数中做 s = "" 和 s = "asdsa" 。
【解决方案2】:

您需要在方法中初始化它,如上所述,或者在创建时,例如:

public class SForceTest
{
    String s = "asdsa";
}

您通常也会给它一个可访问性修饰符,使其看起来更像这样(假设我们只希望此类的实例能够访问该字段):

public class SForceTest
{
    private String s = "asdsa";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多