我创建了一个类调用Sales,其中包含Amount 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'
但是当我在一个函数中使用时,它是正确的。
谢谢。
答案 0 :(得分:4)
您不能将这些类型的赋值语句放在open类上下文中。您只能在方法中进行这些类型的分配。可以在类上下文中完成的唯一分配是类级别字段的初始化。
如果在实例化类时需要进行此赋值,则应在构造函数中完成。
答案 1 :(得分:2)
我可能无法解释清楚。但是get / set属性实际上等同于方法。话虽如此,我相信你不能在函数之外调用一个方法吗?
答案 2 :(得分:2)
class Test
{
Sales.Amount = "10";
public static VoidSales()
{
.....
}
}
这是一个语法问题。您不能在函数外部引用Sales.Amount - 这里您将其定义为属性或变量,并且必须遵循变量(或属性)的规则。
您需要创建一个构造函数并在那里移动赋值。即。
class Test
{
Test () {
Sales.Amount=10;
}
}
错误纯粹是您定义的项目的名称(Sales.Amount)不是函数外部类的上下文中的有效名称。
}
答案 3 :(得分:1)
如果它是一个静态值,那么它已经在你的应用程序的其他地方声明了。您基本上试图在只能进行分配的地方调用方法。
如果这不是静态字段,那么您可以进行分配,然后更改“金额”,例如
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";
}
}