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应该怎么引用啊,我试过实例对象的参数也不行呢。。。
展开
 我来答
freeeeeewind
2013-10-30 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1347万
展开全部

你只是在 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);
        }
}
执迷o不悟
2013-10-30 · 超过12用户采纳过TA的回答
知道答主
回答量:36
采纳率:33%
帮助的人:10万
展开全部
实例化啊、C g =new C() ; g.D1=F;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式