• 别弄混了C#.的几个小概念


    在写博文介绍WCF的Contract的时候,突然发现有几个C#的小概念需要提一下。否则容易让别人听迷糊的。所以,就单独列出来了这篇。

    第一组:Attribute,property,field

    这一组概念好多人会觉得是一个意思。其实,在C#中,他们指代完全不同的内容。

     1     [Serializable]
     2     class Person
     3     {
     4         private string name;     
     5 
     6         public string Name
     7         {
     8             get
     9             {
    10                 return this.name;
    11             }
    12             set
    13             {
    14                 if (!string.IsNullOrEmpty(value))
    15                 {
    16                     this.name = value;
    17                 }
    18             }
    19 
    20         }
    21         
    22         public int Age { get; set; }
    23        
    24     }

    注:第一行:[] 中括号内的叫做Attribute.这个怎么翻译呢?有人翻译为“特性”。我觉得还是不翻译的好,还叫它Attribute吧,呵呵。Attribute是用来修饰Class、Interface、method的,放在class、interface、method定义的上一行。Serializable是系统内已经定义好的"Attribute类",用语修饰其他class、interface、method。[Serializable]修饰一个Class表明该class(类) new出来的的object(对象)可以被序列化成XML。XML可以被反序列化成object(对象)。可以定义自己的"Attribute类"去修饰其他class/interface。这里不多讲,只要知道Attribute是位于class上面一行的中括号内的就行了。
    第四行:private string name;这里name叫做field。有人翻译为“字段”。个人认为不恰当,还是保留叫做field吧,呵呵。其实就是C++中所谓的私有变量了。field因为是private,所以不可在class外被访问。

    第六行至第20行:叫做property。有人翻译为“属性”。个人还是认为还是保留Property。property 提供了外界访问field的一个简易方法。这里可以做简单的条件过滤等。如果property体内只有Get{},而没有Set{},则该property/field就是只读了。

    第22行:一般情况下我们会为filed定义一个property以利于外界的访问。 C#也允许我们之定义property,而不必写field,如Age。在编译时,CLR会自动替我们生成field的。

    第二组:Function & Method(Operation)

    一般function都被翻译成"函数",method都被翻译成"方法"吧?

    我觉主要是从他们所表达的侧重不同进行区分他们. 脚本语言如C,Perl,PHP,Python,powershell,unix bash等,好像用function比较多.而在C#,Java等语言中method用得比较多.个人感觉

    function是不需要依赖于class(类)或object(对象)的,相对于脚本中的普通语句(未被提取成function的语句)而言的;

    method依赖于某个class /object,相对class中的property而言的.

    operation我觉得和method是一个概念,都是在某了对象上面做的操作.

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

    先写这些吧,以后遇到概念再需要单独拿出来澄清的时候,在追加。

  • 相关阅读:
    个人介绍
    C++ 之 第四课 C++中的运算符、表达式
    Delphi 之 第六课 过程与函数
    Delphi 之 第五课 流程语句
    VB 之 第三课 VB API 字体函数的应用
    C++ 之 第三课 C++数据类型
    Delphi 之 第四讲 自定义数据类型
    Delphi 之 第三课 详解数据类型
    C++ 之 第二课 C++类、函数的讲解
    VB API 第二课 之 字符串大小写转换
  • 原文地址:https://www.cnblogs.com/marksun/p/2612609.html
Copyright © 2020-2023  润新知