永发信息网

c#类之间传递值的问题

答案:2  悬赏:80  手机版
解决时间 2021-01-24 15:36
  • 提问者网友:动次大次蹦擦擦
  • 2021-01-24 11:58
using System;

namespace Demo
{
public class A
{
static void Main( string[] args )
{
Console.WriteLine( B.ID );
Console.ReadKey();
}
}

public class B
{
public static void b1()
{
int ID = 666;
}
}
}

如何将B类的值传递到A类且输出
最佳答案
  • 五星知识达人网友:低音帝王
  • 2021-01-24 12:43
using System;

namespace ConsoleApplication1
{
    class A
    {
        static void Main(string[] args)
        {
            B.b1();
            Console.WriteLine(B.ID);
            Console.ReadKey();
        }
    }

    class B
    {
        // 添加一个静态字段ID
        public static int ID;

        public static void b1()
        {
            ID = 666;
        }
    }
}
全部回答
  • 1楼网友:躲不过心动
  • 2021-01-24 14:09
你已经点出来了,传递方式为值传递方式,并且 结构体是 值类型,传递的只是值的一份copy,不是本身,所以方法里面的修改无法影响到外面的值,修改的只是副本。 你需要区分2个概念, 1传递方式,2传递的内同 无论是值类型还是引用类型 传递的方式 都是 值传递方式, 区别是 值类型传递的值 是值的copy 引用类型 传递的值 是 引用 这个指针的 copy,但是由于是引用,虽然是copy,但是它会同原本的引用一样指向同一个内存地址单元,所以 为什么 引用类型 传递过去可以改变属性的值,而值类型不行, 就是这个原因, 所以在msdn 又有一句话 c#的所有 类型 无特殊(out , ref)修饰 ,那么其传递方式都是值传递方式
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯