类属性是一个'property',但像'type'一样使用



我创建了一个类调用 Sales 与 金额 get/set:

class Sales 
{
 public static string Amount { get; set; }
}

然后我从其他类调用,超出函数范围:

class Test
{
  Sales.Amount = "10";
  public static VoidSales() 
  {
   .....
  }
}

我收到以下错误:

'Fun.Sales.Amount' is a 'property' but is used like a 'type'

但是当我在函数中使用时,它是正确的。

谢谢。

不能将这些类型的赋值语句放在开放类上下文中。 只能在方法中进行这些类型的赋值。 在类上下文中唯一可以完成的赋值是类级别字段的初始化。

如果需要在实例化类时进行此赋值,则应在构造函数中完成。

我可能无法很好地解释它。但是 get/set 属性实际上等效于一个方法。话虽如此,我相信你不能在函数之外调用方法吧?

class Test
{
  Sales.Amount = "10";
  public static VoidSales() 
  {
   .....
  }
}

这是一个语法问题。您不能在函数外部引用 Sales.Amount - 在这里您可以将其定义为属性或变量,并且它们必须遵循变量(或属性)的规则。

你需要创建一个构造函数并将赋值移到那里。

class Test
{
    Test () {
        Sales.Amount=10;
    }
}

错误纯粹是您定义的项的 NAME (Sales.Amount) 在函数外部的类的上下文中不是有效名称。

}

如果它是一个静态值,那么它已经在应用程序的其他位置声明了。您基本上是在尝试在只能进行赋值的地方调用方法。

如果这不是静态字段,那么您可以进行分配,然后更改"金额",例如

class Test 
{ 
  public Sales sales = new Sales()
  {
     Amount = "10" //Assign Value Here
  };
  public Test()  
  { 
     sales.amount = "10"; //Or Assign Value here in constructor
  }  
} 

但是,如果这是一个静态字段,则在构造函数中或在声明静态字段时进行赋值。

class Sales  
{  
   public static string Amount = "10" //You don't require get/set here  
} 
class Test    
{ 
    public Test()
    {
        Sales.Amount = "10";    
    }
}    

最新更新