C# 出现非静态的字段方法属性要求对象引用
比如这种情况的,namespaceA{publicclassB{publicstructC{publicStringD1;publicStringD2;publicStr...
比如这种情况的,
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应该怎么引用啊,我试过实例对象的参数也不行呢。。。 展开
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应该怎么引用啊,我试过实例对象的参数也不行呢。。。 展开
2个回答
展开全部
你只是在 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
}
}
追问
是这样的,我的想法是只是定义一个B类型,然后想实例化一个B,然后调用方法E,
大概就是用的时候
mb = new B();
mb.E(mf);
我想这么用的。。。那应该怎么办啊,谢谢啦
ps:
不实例化一个C的话能行不啊~~
追答
可以这样,也许符合你的要求:
public class MyClass
{
public struct MyStruct
{
public String D1;
public String D2;
public String D3;
public String D4;
}
public MyStruct GetMyStruct(string message)
{
MyStrcut s = new MyStruct();
s.D1 = message;
return s;
}
}
class Program
{
static void Main()
{
MyClass mb = new MyClass();
MyClass.MyStruct ms = mb.GetMyStruct("this is a string");
Console.WriteLine(ms.D1);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询