zoukankan      html  css  js  c++  java
  • c#4.5新语法--自动属性和隐式类型

    1、自动属性
        自动属性是c#中属性定义的两种形式的一种:传统属性定义、自动属性。
        1.1 传统属性定义
            private int _age;
            public int Age
            {
                get { return _age; }
                set { _age = value; }
            }
     1.2 自动属性
             public int Age{get;set;}//该句代码的作用和上面传统属性定义的语句的作用是一样的
    1.3 两种属性定义形式的优缺点对比
     1.3.1 传统属性定义形式
        缺点:定义属性的代码多 语法不简洁 繁琐
        优点:定义属性的时候,可以带一些逻辑判断,这是自动属性所不能做到的。
              例如:
           private int _age;
            public int Age
            {
                get { return _age; }
                set {
                    if((0<value)&&(value<200))
                    {
                    _age = value;
                    }
                }
            }
        1.3.2 自动属性定义形式
           优点:定义语法简介,高效、减少程序员书写的代码量
           缺点:定义属性的时候,不能做一些逻辑判断。
    2、属性的作用
      1、定义属性可以保护类的私有字段(封装性)
      2、简化了对类的调用(定义属性之后,要调用累得字段_age,不需要再实例化类了)

    3、隐式类型 var
    3.1概述
      定义变量的方式有两种:传统定义方式、定义成隐式类型。
      传统定义方式:数据类型+变量名(定义的时候可以初始化,也可以不初始化) int k=0;int k;
      隐式类型定义方式:var+变量名(定义的时候必须初始化)var k=0;、
    3.2 注意
    (1).声明的同时必须初始化,因为编译时要根据初始化值类型来推断var的类型;
    (2).声明后不能再修改数据类型,因为初始化的时候已经确定了var的类型了;
    (3).只能作为方法局部变量使用。类的成员字段、方法的形参和返回值都不能使用!因为无法在编译时确定他们的类型!
    (4).初始化表达式不能是匿名函数和null。
    (5)、隐式类型不是动态类型,编译的时候,.net框架把var k=0;转换成了int k=0;

  • 相关阅读:
    java基础--日期--练习集锦
    java基础-数字与字符串-练习集锦
    java-多态-之疑惑
    java-接口与多态-
    java基础 -继承-练习集锦
    java基础-对象-练习集锦
    java基础--数组--练习集锦
    hibernate第二天
    jquery的一些笔记
    struts入门2
  • 原文地址:https://www.cnblogs.com/net064/p/5726887.html
Copyright © 2011-2022 走看看