c# 静态方法不能直接调用非静态成员,请问哪位高手知道如何间接调用非静态成员呢?

 我来答
seamaswong
推荐于2017-11-28 · TA获得超过1122个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:374万
展开全部
class A
{
public static void F()//静态
{
G();//错误
}
public void G()//非静态
{
}
}
一般情况F()不能调用G(),但是你可以增加一个静态成员
class A
{
private static A instance=new A();
public static void F()//静态
{
A.G();//正确
}
public void G()//非静态
{
}
}
ThinkIBM
2011-05-06 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5437万
展开全部
创建一个实例,通过实例访问,只能这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
称唬
2011-05-06 · 超过26用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:24.1万
展开全部
class A
{
public void F()//这是非静态的
{}
}

//调用
A a = new A();
a.F();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
计算机的小笨蛋
2020-11-27
知道答主
回答量:4
采纳率:0%
帮助的人:2699
展开全部
一般是通过构造方法来进行
将非静态成员放入构造方法体中,然后静态方法调用构造函数生成一个新的当前对象
public class Test
{
private readonly string _propA;

public string PropA => _propA;

public Test(string propA)
{
this._propA = propA;
}
public static Test SetMessage(string message)
{
return new Test(message);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式