在C#中,静态函数是属于类级别的,而非静态成员属于对象级别。因此,在静态函数中不能直接访问非静态成员。但是,可以通过创建对象来访问非静态成员。
以下是一个示例:
public class MyClass
{
public int MyNonStaticMember { get; set; }
public static void MyStaticMethod()
{
MyClass obj = new MyClass();
obj.MyNonStaticMember = 10;
Console.WriteLine("MyNonStaticMember: " + obj.MyNonStaticMember);
}
}
class Program
{
static void Main(string[] args)
{
MyClass.MyStaticMethod();
}
}
在上面的示例中,静态方法MyStaticMethod
中创建了一个MyClass
对象,并访问了其非静态成员MyNonStaticMember
。
需要注意的是,静态方法不能直接访问this
关键字,因为this
关键字是指向对象实例的,而静态方法没有对象实例。如果尝试访问this
关键字,将会导致编译错误。
领取专属 10元无门槛券
手把手带您无忧上云