打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C# 属性、引用数据类型和方法参数

一、属性

属性,它提供灵活的机制来读取、编写或计算某个私有字段的值。(很多同学由于学了太多的专业术语:结构体中的特征、类中的字段、属性等,有点搞不清,其实属性就是一个字段)
属性作为一个私有字段是不可被访问的,但是我们可以通过写get和set方法来实现属性的读和写。

class SX{	private int number;  //编号	//当外界调用方法的时候相当于调用了number的值    //并且外界无法对number进行操作    public int GetNum()  //可读    {    		return number;    }	//外界通过此方法可以直接修改number的值    //但是无法对number取值    public void SetNum(int value)  //可写    {        number = value;    }}

但由于手写get和set方法太过麻烦,系统为我们封装了这两个方法,我们可以通过调用get访问器和set访问器来实现属性的可读性和可写性。

private string name;//这是一个可读可写的属性public string Name{	//当属性存在get、set访问器时,可以在get、set前加访问修饰符	get	{		return name;	}	set	{		name = value;	}}//当我们只写一个get或set属性的时候,默认另外一个private不可访问//访问器本质上也就是方法private int age;public int Age{	set	{		age = value;	}}

只有get访问器或set访问器为私有的属性视为只读属性;只有set访问器或get访问器为私有的属性视为只写属性;两者都有的是读写属性。属性还有一种简写方式(可以省略私有字段的定义)

public string Brand { get; set;}

二、数据类型


指针类型我们这不做考虑,只讲讲值类型和引用类型。我们平时用的枚举、结构体、整形、浮点型都是属于值类型。而我们已经学的类、数组是引用类型。这里要特别注意string类型,和多人会误以为string类型是值类型,其实不是,string类型和数组很像,它能像数组一样使用:

string str1 = "hunchuanchang";Console.WriteLine(str1[0]);for (int i = 0; i < str1.Length; i  ){	Console.Write(str1[i]   " ");}

具体string类型怎么使用我们会在下次讲到。
值类型是在栈中分配空间,由系统自动分配;引用类型是在堆中分配空间,由程序员用“new”来分配空间。在这里我们稍微了解一下栈和堆,栈是能自动释放内存,而堆需要GC释放内存。
值类型的赋值操作,两个值类型变量相互赋值后,变量做任何操作都互不影响;引用变量在互相赋值后,修改其中一个变量两个变量都会改变。我们举个例子:

int x, y;x = 3;y = x;y = 33;Console.WriteLine(y);//y=33Console.WriteLine(x);//x=3int[] a = new int[1];int[] b = new int[1];a[0] = 3;b = a;b[0] = 33;Console.WriteLine(b[0]);//b[0]=33Console.WriteLine(a[0]);//a[0]=33

三、方法参数

在定义函数时函数名后面括号中的变量名称称为形式参数(简称形参);主调函数中调用一个函数时,函数名后面括号中的参数称为实际参数(简称实参)。形参和实参我们不做多讲,我们主要讲的是引用参数、输出参数和数组形参数。
引用参数
引用参数能让我们的值类型达到引用类型的效果,在定义参数时用ref修饰符声明
输出参数
输出参数能让我们返回多个值,只需在定义参数时用out关键字标识。它的效果与引用参数几乎相同,不同点是:
1.引用参数的实参必须是已经赋值的变量,而输出参数不必。
2.函数使用输出参数时,应该把它看作是未赋值的。
数组型参数
数组型参数必须在参数表最后,而且必须是一维数组类型,用params修饰符声明,不能和ref和out修饰符组合使用

class MyMath{	//以ref修饰的参数,不管是什么类型,TA都会有应用类型的特性	public void Swap(ref int x,ref int y)	{		int temp = x;        x = y;        y = temp;	}    //当我们需要多个返回值的时候,我们可以使用输出参数    //在方法中,输出参数必须要有值	public int Cal(int a, int b, out int x, out int y, out int z)    {		x = a   b;        y = a - b;        z = a / b;        return a * b;    }    //数组参数    //数组参数不能和ref、out一起使用    //数组参数只能在所有参数最后面    public void Sum(params int[] arr)    {        int result = 0;        for (int i = 0; i < arr.Length; i  )        {            result  = arr[i];        }        Console.WriteLine("算出结果为:", result);    }}

以上内容纯属个人见解,如有纰漏,轻喷。

来源:https://www.icode9.com/content-1-352201.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
最简单的C#快速入门教程
2.1 数组的声明初始化,存取,方法、属性,二维数组,参数数组
C# 数据容器详解:Array、List、Dictionary、LinkedList、Queue、Stack
C#中方法的参数
C#基础到入门(一篇就够了)
.Net 面试题整理(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服