C#编程基础(中级)(二)——属性,匿名类型

1.属性
  1. 定义
    public/private/protected int name
    {
    get
    {
    //get code
    }
    set
    {
    //set code
    }
    }

定义属性需要名字类型,属性包含两个块,get块set块,访问属性和访问字段一样,当取得属性的值的时候,就会调用属性中的get块,所以get块需要一个返回值,且必须是属性的类型;当给属性设置值的时候,就会调用属性中的set块,我们可以在set块中通过value访问到我们设置的值。

例如:

class Gods
{
	public string Cracky
    {
        get
        {
            return "101 loyal dogs";
        }
        set
        {
            Console.WriteLine("Value的值为:" + value);
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
		Gods god = new Gods();
        god.Cracky = "Keys";
        string happiness = god.Cracky;
        Console.WriteLine(happiness);
    }
}     

输出为
在这里插入图片描述
注意此处get中输出的不是存入的值(因return返回的不是)

设置属性的只读或只写

  • 如果没有set块,该属性就为只读,不能向其设置值;如果没有get访问器,该属性就为只写,不能通过该属性取值。
  • 将属性中的块名前加上private访问修饰符,则只能在属性所在的类里面进行操作,其它类无法操作。

  1. 通过属性访问字段
    可以在set方法中设置字段的值访问字段的值,并做一些校验的工作。
    例如:
class Gods
{
	private int score;
	public int Test
	{
 		get
		{
			return score;
		}
		set
		{
			if (value >= 0)
				score = value;
		}
	}
}

class Program
{
	static void Main(string[] args)
	{
		Gods god = new Gods();
		god.Test = Convert.ToInt32(Console.ReadLine());
		Console.WriteLine(god.Test);
	}
}

输出为
在这里插入图片描述


3.自动实现的属性
若属性中的get块和set块里未写任何代码,则编译器会自动为我们提供一个字段来存储我们设置的值。

例如:

class Gods
{
	private int score;
	public int Test
	{
		get;//未写任何代码
		set;//未写任何代码
	}
}

class Program
{
	static void Main(string[] args)
	{
		Gods god = new Gods();
		god.Test = Convert.ToInt32(Console.ReadLine());
		Console.WriteLine(god.Test);
	}
}

输出为
在这里插入图片描述

2.匿名类型

我们创建变量的时候必须指定类型,当我们选择不指定的时候就是匿名类型,可以使用var声明一个匿名类型。

可以通过var声明对象
例如:

var god = new Gods();

使用var声明的匿名类型,当我们对其初始化的时候,这个变量的类型就被确定下来,并且以后不可以修改。

注意:
引用其它项目中的类时,要在类前加上public访问修饰符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值