• C#基础学习C# 8.0 In a Nut Shell


    Field 其实就是变量,但是英文里面是field,字段,域名。为啥要这么取名是因为面向对象编程,发明类,事儿多,什么防止变量被修改什么的,所以发明了属性property

    属性就是用函数来操纵变量,也即这个字段,field。所以独立用字段的类,不怎么好(大概是这个意思)。

    然后,类要初始化,初始化变量怎么办?取名Constructor,翻译过来是建构,构造(心理学的构造主义,建构主义心理学 就是这个词汇),构造一下,等于初始化。

    为了要让初始化明显,取名和类名是需要一样的。这里类名是UnitConverter(单位换算类),那么构造函数,也叫做UnitConverter。

    可见,为了实现类,面向对象的编程方法,可是苦了编译器,编译器做了很多工作。(还有语言本身的工作)

    接下去是叫做方法,这个是又是为了区别函数发明的,本质上和函数一样,在类里面,构造函数,等之类,可以叫函数,自定义函数,或者属性函数(为了操纵变量,也即字段发明的概念),

    统统叫做,方法,method,注意,method 就是 函数 function ,函数就是method ,只是场景不同,所以又发明一个词汇,混淆视听。唉。

     

    继续,

    UnitConverter feetToInchesConverter = new UnitConverter (12);

    实例化一个类,并且初始化的值为12.

    注意,这里的新名词,实例化。本质上,int x = 30 ,这种是C#或编译器预先定义的类型,当然后台肯定实现了的,并不是天然就有的。

    Int 就是默认类型,预定义类型。现在UnitConverter 写在变量名 feetToInchesConverter 前面,类比 int x

    Int x = 30 ,这个很简单,当然内部机制是什么我们暂且不管。

    UnitConverter feetToInchesConverter = new UnitConverter (12) 而这个 需要关键字 new ,区分它是不一样的变量,这里升级为"类"

    所以叫做实例化。等价于我们自己定义一个类,自己弄类型,区分int

    当然,初始化的值为12,传给谁?当然是传给里面的构造函数(或者叫做构造方法,反正函数和方法在我这里笔记上就乱用了 ,没有区分)

     

    Console.WriteLine (feetToInchesConverter.Convert (30));

    这句话,用点号,调用Convert方法(函数),把30传入进去。

    函数(方法)内部是这样的:

    其中,那个ratio new类的时候,已经被构造函数,构造好了,所以是12

    其次,那个unit是传入的值 ,为30

    所以返回的值是 12*30 = 360

     

    运行结果:

     

    总结:

    UnitConverter int 类型的区别

    1. 一个是预定义,一个是自定义
    2. 一个是单纯一点,一个是复杂点,有自己定义的方法和属性和字段和函数。当然,C#里面是面向对象的,所以就连int也有方法,或者 函数

      比如int类型有 toString的强制转换函数

     

    类的初始化 或者 实例化的单词 是initialization,词汇是 instantiates an object

     

     

     

     

    // The instance field Name pertains to an instance of a particular Panda,

    // whereas Population pertains to the set of all Pandas:

     

    public class Panda

    {

        public string Name; // Instance field

        public static int Population; // Static field

     

        public Panda (string n) // Constructor

        {

            Name = n; // Assign the instance field

            Population = Population + 1; // Increment the static Population field

        }

    }

     

    static void Main()

    {

        Panda p1 = new Panda ("Pan Dee");

        Panda p2 = new Panda ("Pan Dah");

     

        Console.WriteLine (p1.Name); // Pan Dee

        Console.WriteLine (p2.Name); // Pan Dah

     

        Console.WriteLine (Panda.Population); // 2

    }

     

    运行结果:

    又发明了一个词,叫做static,翻译过来是静态的意思。就是运行的时候一直驻留在内存里,反复调用不销毁(只是我的粗狂理解,并不是真的如此,我知道计算机知识编程知识用这种黑盒子或者叫做知识屏蔽,循序渐进是有用的)

    所以字段Population是2

     

     

    结构体

     

     

     

    类是引用的

     

     

     

     

  • 相关阅读:
    修改 Mac 默认 PHP 运行环境,给 MAMP 配置全局 Composer
    修改 Mac 默认 PHP 运行环境,给 MAMP 配置全局 Composer
    Intellij Idea/Webstorm/Phpstorm 的高效快捷键
    Intellij Idea/Webstorm/Phpstorm 的高效快捷键
    管理工具推荐
    mongo find
    redis 工具
    Redis Quick Start [熟练版]
    Redis cluster
    redis cluster 使用中出现的问题
  • 原文地址:https://www.cnblogs.com/ifconfig/p/13113548.html
Copyright © 2020-2023  润新知