因此,我正在阅读其他人的代码,我想知道我是否正确,认为这只是轻松启动类实例的一种方式。
private ExampleClass ex = new ExampleClass();
public ExampleClass Ex => ex;
我一直试图模仿它-我试图运行的是:
class Program
{
private List<int> testList = new List<int>();
public List<int> TestList => testList;
static void Main(string[] args)
{
var testList1 = new LambdaPractice(TestList);
var testList2 = new LambdaPractice(TestList);
testList1.Print();
testList2.Print();
}
}
但是,我不断收到错误消息,为了使用TestList
,我必须将TestList
和testList
都设为静态变量。为什么此人的代码中不是这种情况?
*打印是我在LambdaPractice
类中实现的功能,可打印出实例ID号。
答案 0 :(得分:0)
我想知道我是否正确,认为这只是轻松启动类实例的一种方式。
否,它实际上是get-only属性的简写形式,它返回指定的lambda的值。 (也称为表情强壮的成员)
// This
public ExampleClass Ex => ex;
// is the same as
public ExampleClass Ex { get { return ex; } }
但是,我不断收到错误消息,为了使用TestList,必须将TestList和testList都设为静态变量。为什么此人的代码中不是这种情况?
正如错误所暗示的,您不能从静态方法访问非静态类成员。您要么需要使方法成为非静态方法,要么使列表成为静态方法。很难说,但我会假设您所指的代码实际上不是静态的。
更多信息: