今天早上我的大脑不工作了。我需要一些帮助来从静态方法访问一些成员。这是一个示例代码,我如何修改它以便 TestMethod() 可以访问 testInt
public class TestPage
{
protected int testInt { get; set; }
protected void BuildSomething
{
// Can access here
}
[ScriptMethod, WebMethod]
public static void TestMethod()
{
// I am accessing this method from a PageMethod call on the clientside
// No access here
}
}
最佳答案
testInt
声明为实例字段。如果不引用定义类的实例,static
方法就不可能访问实例字段。因此,要么将 testInt
声明为静态,要么更改 TestMethod
以接受 TestPage
的实例。所以
protected static int testInt { get; set; }
没关系
public static void TestMethod(TestPage testPage) {
Console.WriteLine(testPage.testInt);
}
其中哪一个是正确的在很大程度上取决于您要建模的内容。如果 testInt
表示 TestPage
实例的状态,则使用后者。如果 testInt
是关于类型 TestPage
的东西,那么使用前者。
关于c# - 从静态方法获取访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049884/