CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

如何设置某个类的私有变量

楼主mole(鼹鼠)2006-03-04 18:18:24 在 .NET技术 / C# 提问

请问大虾,如何去设置另一个类实例的私有变量,请给出代码.谢谢 问题点数:100、回复次数:6Top

1 楼Mc_axe()回复于 2006-03-04 18:28:02 得分 0

包含私有变量的类加上get和set函数就行了  
  void   setx(int   x);  
  int   getx(void);Top

2 楼Macosx(结贴)回复于 2006-03-04 18:31:53 得分 10

FieldInfo   fi   =   typeof(ResourceStrings).GetField(fieldName,   BindingFlags.Static   |   BindingFlags.GetField   |   BindingFlags.Private);  
  再使用FieldInfo.SetValue   Method   具体看MSDN  
   
           
  Top

3 楼LixingTie(生铁)回复于 2006-03-04 18:36:15 得分 0

帮你写了个例子:  
  class   Class1  
  {  
          private   int   myInt=1;  
          public   int   MyInt  
          {  
                  get  
                  {  
                          return   myInt;  
                  }  
                  set  
                  {  
                          myInt   =   value;  
                  }  
          }  
  }  
  在外部要给myInt赋值就这样:  
  Class1   A   =   new   Class1();  
  A.MyInt   =   10;  
  Top

4 楼xxqq0824(赛跑)回复于 2006-03-04 18:55:33 得分 0

既然私有,就没办法在类外访问  
  只有使用属性,或者索引器。不过,这也只是个wrapTop

5 楼xiaohuasz()回复于 2006-03-04 19:18:33 得分 90

利用反射机制是可以获取和设置非公有成员的  
   
  using   System;  
  using   System.Reflection;  
   
  namespace   ConsoleTest2  
  {  
  ///   <summary>  
  ///   Class1   的摘要说明。  
  ///   </summary>  
  class   Class1  
  {  
  ///   <summary>  
  ///   应用程序的主入口点。  
  ///   </summary>  
  [STAThread]  
  static   void   Main(string[]   args)  
  {  
  Test   test=new   Test();  
  FieldInfo   fi=typeof(Test).GetField("name",BindingFlags.NonPublic|BindingFlags.SetField|BindingFlags.Instance);  
  fi.SetValue(test,"ddd");  
  Console.WriteLine(test.Name);  
  Console.ReadLine();  
  }  
  }  
  public   class   Test  
  {  
  private   string   name;  
  public   string   Name  
  {  
  get  
  {  
  return   name;  
  }  
  set  
  {  
  name=value;  
  }  
  }  
  }  
  }  
  Top

6 楼mole(鼹鼠)回复于 2006-03-04 19:28:53 得分 0

谢谢xiaohuasz,同时也谢谢Macosx,只是我用的版本上没有bindingflags.private枚举值,我是VS.NET   2003不知你用的是哪个版本?Top

相关问题

  • 一个关于类的私有变量的问题
  • 如何窥探类中的全部私有变量???
  • 如何调用基类的私有变量?
  • 求教:友元访问模板类私有变量
  • 一个关于定义类中私有变量值的改变问题.
  • 设置变量和获值类
  • 可私有变量可以吗?
  • ATLCom中的接口参数类型VARIANT如何赋值给BSTR类型的私有变量
  • 为什么在类中定义本类的私有变量并用属性表达?
  • 在java 子类继承父类的的非私有变量和方法 ?这句话对吗

关键词

  • 私有变量
  • bindingflags
  • myint
  • 类
  • fieldinfo
  • 设置
  • getfield
  • 谢谢
  • fi
  • test

得分解答快速导航

  • 帖主:mole
  • Macosx
  • xiaohuasz

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo