C#Lesson_07属性、数据类型、方法参数

  • 属性

为类中字段手写Get方法和Set方法是很麻烦,所以程序帮我们自动的封装出这个两个方法。

//使用上面的操作会生成以下

    public string Name
    { 
        //get访问器,用来读取属性值
        get
        {
        return name;
        }
        //set访问器,用来给属性赋值
        set
        {
        name = value; 
        }
    }
//注意:不具有set访问器的属性被视为只读属性.

注:旧版本vs会生成上面的,新版本的vs会生成一下面的

public string Address { get => address; set => address = value; }

//属性本质上就是Get和Set方法,只是在形式上不同;

数据类型

值类型和引用类型

  • C# 中有两种类型:引用类型值类型
  • 值类型:在栈中分配空间,由系统自动分配
  • 引用类型:在堆中分配空间,由程序员用“new”来分配空间是
// 值类型,由系统自动在栈中分配空间
    int a;
    // 引用类型,需要用new关键字去在堆中分配空间
    int[] myArray = new int[5];
    }
注意:string 类型属于特殊的引用类型

 值类型

在做赋值操作的时候,值类型和引用类型有很大的区别

值类型变量互相赋值之后,两变量做的任何操作都互不影响,因为他们在不同的空间操作,

值类型变量赋值又称为拷贝赋值

引用类型

引用类型互相赋值之后,他们共用同一个空间,相互影响,一个值改变,另外一个值也会发生改变

方法参数

引用参数

//值类型参数想要达到引用类型参数的效果,需要用到引用参数。

//引用参数以ref修饰符声明。
public void Swap (ref int a, ref int b)
{

int c = a ;
a = b;
b = c;

}

=====================================================
MyTest mt = new MyTest();

int a = 10;b = 16;

mt.Swap(ref a,ref b);

注意:ref 修饰的变量在传递数前一定要有初始值

 输出参数

//如果想要一个方法返回多个值,可以用输出参数来处理.
//输出参数由out关键字标识,既它与普通形参相比只多了个out修饰

例:==========================================================

public void Cal (int a,int b,out int x,out int y)
{
x = a - b ;
y = a + b ;
}

//注意:在方法中out修饰的参数必须先初始值才能用

===========================================================

MyTest mt = new MyTest();

int a = 10;b = 16;
int a1,b1;
mt.Swap( a, b,out a1,out b1);
//注意:out修饰的变量在传递前,可以没有初始值

 数组参数

//如果形参表中包含了数组型参数,那么它必须在参数表中位于最后,而且必须是一维数组类型。
//另外,数组型参数不可能将params修饰符与ref和out修饰符组合起来使用。

例:========================================================================

class MyMath{
    public void Sum(params int[] a)
    {
        int result = 0;
        foreach(int x in a)
        {
            result += x;
        }
        Console.WriteLine("结果为:" + result);
    }
}

===========================================================================

public static void Main(string[] args)
{
    MyMath mymt = new MyMath();
//这里的算出个数是任意个,甚至可以为0个
    mymt.Sum(1,2,3,4,5);
}

 总结

  1. 参数的长度可变。长度可以为0。

  2. 只能使用一次,而且要放到最后。

  3. 后跟数组类型,不能跟ref、out一起搭配使用

C#中方法的参数有4种类型:

  • 值参数:不附加任何修饰符
  • 输出参数:以 out 修饰符声明,可返回一 个或多个值给调用者
  • 引用参数:以 ref 修饰符声明
  • 数组参数:以 params 修饰符声明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值