比如这种情况的,
namespace A
{
public class B
{
public struct C
{
public String D1;
public String D2;
public String D3;
public String D4;
}
private void E(String F)
{
C.D1 = F
}
}
}
这个C.D1应该怎么引用啊,我试过实例对象的参数也不行呢。。。
C# 出现非静态的字段方法属性要求对象引用
答案:2 悬赏:40 手机版
解决时间 2021-02-27 15:46
- 提问者网友:書生途
- 2021-02-27 02:10
最佳答案
- 五星知识达人网友:西岸风
- 2021-02-27 03:30
你只是在 class B 中嵌套声明了 struct C!并没有定义 struct C类型的变量!
public class B
{
public struct C
{
public String D1;
public String D2;
public String D3;
public String D4;
}
//定义变量
C mc;
private void E(String F)
{
mc = new C( );
mc.D1 = F
}
} 更完备的版本如下:
p
public class B
{
public struct C
{
public String D1;
public String D2;
public String D3;
public String D4;
}
//定义变量
private C mc;
//构造函数
public B()
{
this.mc = new C();
}
public void E(String F)
{
this.mc.D1 = F
}
}
public class B
{
public struct C
{
public String D1;
public String D2;
public String D3;
public String D4;
}
//定义变量
C mc;
private void E(String F)
{
mc = new C( );
mc.D1 = F
}
} 更完备的版本如下:
p
public class B
{
public struct C
{
public String D1;
public String D2;
public String D3;
public String D4;
}
//定义变量
private C mc;
//构造函数
public B()
{
this.mc = new C();
}
public void E(String F)
{
this.mc.D1 = F
}
}
全部回答
- 1楼网友:污到你湿
- 2021-02-27 03:48
在使用类(class)的非静态字段、属性和方法前,必须先实例化对象,然后通过实例操作非静态字段、属性和方法。
因为被实例化对象是一个引用类型的变量,因此“非静态的字段 方法或属性要求对象引用”。
例如
// 定义一个类testclass
class testclass
{
// 非静态字段
public int x;
// 非静态属性
public string name{get;set;}
// 非静态方法
public int add(int a, int b)
{
return a + b;
}
}
// 要使用testclass非静态成员,必须先实例化testclass
// 注意:变量 tc 引用类型的
// 如果不实例化testclass,调用非静态成员时就会出错!
testclass tc = new testclass();
tc.x = 100;
tc.name = "li shi";
int r = tc.add(10, 10);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯