汗~~,不同的cs里面阿除非你把tempRule变量设置为全局的——否则它们之间是不通用的,都是独立存在的。==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
联系方式:Q64180940(请清楚注明业务还是技术咨询)  全天在线
==================================================================

解决方案 »

  1.   

    全局变量的声明你不会么??——我不会C#的写法,所以我只给别人思路。==================================================================
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
    联系方式:Q64180940(请清楚注明业务还是技术咨询)  全天在线
    ==================================================================
      

  2.   

    pup.cs
    namespace Pub
    {
        [Serializable]
        public class T_Rule
        {
            public int RuleId = -1; //规则号
         }
    在DataRecv.cs怎么调用上面RuleId这个变量的值
      

  3.   

    LS的,你直接取不就行了
    T_Rule t = new T_Rule();
    取t.RuleId的值肯定就是-1了
      

  4.   

    就是这样 ,你声明public后  要用的时候 就用 T_Rule类实例化一个对象,   对象.RuleId 就肯定等于-1的    就如changkimkim()大哥说的一样
      

  5.   

    T_Rule rule = new T_Rule();//一个新实例啊...和你Sche.cs中那个tempRule一点关系都没有...
    int a=rule.RuleId//必然是-1...你可以把那个tempRule当作参数传递过来...然后...T_Rule rule = tempRule;ps:不要去想什么cs文件...Sche.cs还是DataRecv.cs对运行时都没有任何意义...namespace和class name才是逻辑边界...
      

  6.   

    T_Rule rule =null;
    rule = new T_Rule();
    int a=rule.RuleId
    是不是这样就可以了
      

  7.   

    还不是很明白
    T_Rule rule = tempRule;这个干什么啊!在Sche.cs里我是这样付值的!
    tempRule = new T_Rule();
    tempRule.RuleId = (int)row["RuleId"];
    ///////////这里给T_Rule.RuleId付值!在DataRecv.cs怎么调用T_Rule的RuleId这个变量的值
      

  8.   

    pup.cs
    namespace Pub
    {
        [Serializable]
        public class T_Rule
        {
            public int RuleId = -1; //规则号
         }
    ///////////////
    然后 在Sche.cs里付值!
    tempRule = new T_Rule();
    tempRule.RuleId = (int)row["RuleId"];
    ///////////
    最后来在DataRecv.cs里我是这样来来获取他的值!但是结果是空的!
    T_Rule rule = new T_Rule();
    int a=rule.RuleId意思就是这样
      

  9.   

    这是因为你不太知道面向对象概念的造成的。tempRule = new T_Rule();
    tempRule.RuleId = (int)row["RuleId"];这里你是给对象(tempRule)的成员(RuleID)赋值。下面取值时:
    T_Rule rule = new T_Rule();
    int a=rule.RuleId
    这里rule是另外一个对象,因为new T_Rule()是另外一个对象了。明白了吗?就好象你借一块钱张三。之后找另外一个张三还,他肯定没有了。
    解决办法:你要在取值的方法里面把给赋值的对象用参数转过来
    public void GetRuleID(T_Rule tempRule)
    {
    int a = tempRule.RuleId 
    }
    这样肯定可以了。
      

  10.   

    我帮你看清楚你自己的代码是什么意思,我想你自己该想出来怎么改pup.cs
    namespace Pub
    {
        [Serializable]
        public class 人
        {
            public int 年龄 = 0; 
         }
    }在Sche.cs里你是这样付值的楼主 = new 人();
    楼主.年龄 = 23;
    ///////////
    为什么在DataRecv.cs里你是这样来来获取自己的年龄!但是结果是0!
    人 比尔盖茨 = new 人();
    int a=比尔盖茨.年龄;你说为什么你得不到自己的年龄23呢? 而得到刚出生的盖子的0 ???你赋值的是一个人,取的却是另外一个人,当然取不到了
      

  11.   

    要得到正确的23,应该让自己成为比尔盖茨
    楼主 = new 人();
    楼主.年龄 = 23;
    ///////////人 比尔盖茨 = 楼主;   //注意,是等于楼主,不是等于new 人();
    int a=比尔盖茨.年龄;   //现在你肯定得到了23了
    现在由于"楼主"是有作用域的,就是Sche.cs这个帖子,离开这个帖子,到了DataRecv.cs那个帖子,已经没有你这个楼主了,虽然有楼主不过已经是别人了~~~所以你要想个办法把你的楼主从Sche.cs传到DataRecv.cs, 可以使用全局数据(比如一个Singleton对象的某个属性),或使用参数传递~~
      

  12.   

    因为你新new了一个实例出来
    这个实例,和你先前用的实例是不同class b{
      public : 
             int a;
    }一、先声明一个实例并赋值
    b myb;
    myb.a=10;二再声明一个,并获取
    b myc;
    这时myc中的a值并没有初始化,所以,你在其他类中,要获取另一个类实例的值,应该把那个类实例声明为全局函数
    如:
    一、声明一个全局变量
    b myb;
    二、赋值
    myb.a = 10;三、其他类中获取值
    int c;
    c = myb.a
      

  13.   

    public class T_Rule
        {
            public int RuleId = -1; //规则号
            public Cp_IndustryInfo(int _ruleId)加一个构造函数
            {
                RuleId = -1;
            }
         }
    tempRule = new T_Rule(3);
    tempRule.RuleId = (int)row["RuleId"];
    别着急慢慢来,只要有信心就好。
    以上有sb回复者,你问问他们 什么叫const,static,static readonly的区别,能答对者,再来判断自己是不是适合高程序开发
      

  14.   

    syeerzy的解释果然通俗明白。哈哈楼主估计是从asp和html转过来的,还弄不清楚“面向对象”编程的基础,建议找基础书先补习一下。