主题:  C#求救!!!谢谢!!!

Tassadar

职务:普通成员
等级:1
金币:-1.0
发贴:38
#12004/12/30 13:30:23
1 对象,字符串作为函数的参数,当形参在函数体中被改变时,实参是否也被改变?

2 对象的成员变量一定是引用类型的吗?


using System;

class test
{
    public int a;
    test(){a=0;}
}

class test23
{
    static void change(test x)
    {
x.a++;
    }

    static void Main()
    {
         test a;
        test23.change(a);
        Console.WriteLine("{0}",a.a);
    }
}

test23.change(a);中的a为什么是没附植的局部变量?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22004/12/30 13:46:26
对象没有实例化

test a = new test();


非常大鱼

Tassadar

职务:普通成员
等级:1
金币:-1.0
发贴:38
#32004/12/30 14:02:09
谢谢老大,前两条呢?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/12/30 15:41:04
class test
{
public int a;

public void test()
{
a=0;
}

public new()
{}
}

语法还没过关,new()在这里必须的


非常大鱼

Tassadar

职务:普通成员
等级:1
金币:-1.0
发贴:38
#52004/12/30 17:10:38
我明白老大!我想确认一下:

1 对象,字符串作为函数的参数,当形参在函数体中被改变时,实参是否也被改变?

2 对象的成员变量一定是引用类型的吗?

编辑历史:[此帖最近一次被 蓝鲸 编辑过(编辑时间:2004-12-30 19:08:13)]


zhaopingguang

职务:普通成员
等级:1
金币:-1.0
发贴:1
#62004/12/30 17:35:29
有哪位仁兄仁弟能告诉我怎么用 DW2004制作网页上的小小广告吗?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#72004/12/30 19:10:43
Tassadar在上个帖子中说
引用:
我明白老大!我想确认一下:

1 对象,字符串作为函数的参数,当形参在函数体中被改变时,实参是否也被改变?

2 对象的成员变量一定是引用类型的吗?



我明白老大!我想确认一下:

你可能学过C++吧,但C#没有引用这种概念,虽也可用指针,但必须声明非安全类型。参数中的变量不会影响类中其它定义的变量的。


非常大鱼

Tassadar

职务:普通成员
等级:1
金币:-1.0
发贴:38
#82004/12/31 9:37:13
恳求斑竹不要发怒!

我的确正在转型.(c++------>c#)

1 c#中不是有移用类型吗?

2 函数中不是有 ref 关键字吗?

3 我的例子中的错误被修正后,实参的确被形参改变了.我没有用 ref 关键字呀!



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#92004/12/31 15:21:54
我没遇上这样的事,一般也不会把参数与属性同样命名,要不你把代码发到这儿。


非常大鱼

Tassadar

职务:普通成员
等级:1
金币:-1.0
发贴:38
#102004/12/31 16:14:09
using System;

class test
{
    public int a;
    public test(){a=0;}
}

class test23
{
    static void change(test x)
    {
        x.a++;
    }

    static void Main()
    {
        test a=new test();
        change(a);
        Console.WriteLine("{0}",a.a);
    }
}


对象的引用a作为参数,a.a的值在static void change(test x)中被改变了!



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#112005/1/1 1:03:24
你与C++的引用搞混了。
C#中什么都是对象,包括变量类型。
Test a = new Test();已经实例化一a的实例了,当a作为参数运算,当然要改变a内部的值了,因为change(a)已经改变了实例中属性值了。


非常大鱼

Tassadar

职务:普通成员
等级:1
金币:-1.0
发贴:38
#122005/1/4 9:19:46
明白了!多谢蓝斑竹! ;)