当前位置: 首页 > news >正文

怎么做网站优化 sb站推广入口2023年

怎么做网站优化 s,b站推广入口2023年,苏州微信网站建设,网页设计图片加载不出文章目录 前言属性和字段的区别字段访问修饰符和关键字定义变量类型的定义变量命名变量的赋值 属性 不同的使用情况 前言 最近在工作的过程中常常会觉得自己在程序设计方面的能力还是有欠缺。例如一直对于变量的声明感到不足,在工作中为了图方便总是直接public定义…

在这里插入图片描述

文章目录

  • 前言
  • 属性和字段的区别
    • 字段
      • 访问修饰符和关键字定义
      • 变量类型的定义
      • 变量命名
      • 变量的赋值
    • 属性
  • 不同的使用情况


前言

最近在工作的过程中常常会觉得自己在程序设计方面的能力还是有欠缺。例如一直对于变量的声明感到不足,在工作中为了图方便总是直接public定义字段,实际上造成了很多困扰,特写此文总结一下应当怎样定义成员变量。

属性和字段的区别

字段

【字段】

  • 字段(Field)是一种表示与对象或类关联的变量的成员,字段声明用于引入一个或多个给定类型的字段。字段是类内部用的,private类型的变量(字段),通常字段写法都是加个"_"符号,然后声明只读属性,字段用来储存数据。
public int Index = 0;
private int m_index;
private static int s_index;
public static int s_Index;

字段,或者说变量是类中最基本的要素。一般来说我们定义一个字段的时候,需要考虑的是以下几点:

  • 使用何种访问修饰符
  • 是否使用其他关键字
  • 定义的变量类型
  • 变量名的取名
  • 变量在定义时的赋值

以上要素对于属性定义也是一样的。

访问修饰符和关键字定义

这里这介绍一些常用的:

当我们希望一个字段可以被其他类访问时,通常会将其定义为public,若不希望被其他类访问,则为private,若想要被子类访问,则会定义为protected

然后是一些关键字的运用:若想要即使生成了多个类,但其中的一些字段值依旧全局唯一,我们会使用static来定义。

如果我们想要对字段值在方法中进行类似指针的赋值引用,会用到ref,in,out关键字,或者直接进行指针引用(指针引用和C相同,但是必须要在unsafe块中进行)。

ref,in,out的共同点是:

  • 需要在方法定义与方法调用处显示的使用关键字。
  • 参数按引用传递,而非值传递。

ref,in,out的不同点是:

  • ref:参数变量需要初始化,参数在方法中可以修改或不修改。
  • out:参数变量无需初始化,参数在方法中必须进行赋值。
  • in:参数变量需要初始化,参数在方法中不能进行修改。

在类中实现方法的时候,我们还会用到abstract关键字,virutaloverride关键字。abstract用于抽象类中定义的抽象方法。而virutal定义了父类虚方法,override则用于继承了该父类的子类中重写同名虚方法和抽象方法。还有sealed关键字用来密封类或者函数,如果类使用了sealed则不可被继承,若函数使用了override sealed来描述则该方法不可再被override重写

关键字还有很多种,例如定义委托的delegate,基本语法的if,else,switch,case,break,continue,等等等等

变量类型的定义

定义的变量类型当然是需要什么定义什么,有些特殊的情况,例如我们在调用class类型的变量时,可以不定义为该class本身的类型:若需要访问其父类中的方法,则可以直接定义为它的父类;若需要访问该类中继承的接口方法,也可以直接定义为它的接口类型。

变量命名

变量名的取名我通常是匈牙利命名法和驼峰命名法相结合:

  • 私有成员变量m_name,例如m_maxNum
  • 公共变量Name,例如MaxNum
  • 常量或宏NAME,例如MAX_NUM
  • 静态变量s_开头,结合公有或私有命名

虽然C#官方推荐私有变量_开头,但是似乎许多宏也是_开头的,为避免不必要的问题,我觉得不用以_开头

从取名上尽量要取得详细,除了一些专用名词如TCP,UDP等等,尽量不要使用首字母大写进行缩写。例如一个TCP的接收消息管理器我会命名为TCP_ReceiveManager,或者一个游戏场景内物体管理器GameSceneObjManager。不要因为嫌麻烦而简化命名

变量的赋值

一些变量在运行时需要提前进行初始化,否则会导致空引用,而一些变量虽然不赋值也可以调用,但往往会导致错误的结果。因此变量初始化的赋值很重要,要么在脚本开始执行时调用一个初始化方法统一分配,要么就直接在字段定义时进行赋值。


属性

【属性】

  • 属性(Property)是另一种类型的类成员,定义属性的目的是在于便于一些私有字段的访问。类提供给外部调用时用的可以设置或读取一个值,属性则是对字段的封装,将字段和访问自己字段的方法组合在一起,提供灵活的机制来读取、编写或计算私有字段的值。属性有自己的名称,并且包含get 访问器和set 访问器。

属性和字段的定义几乎是一模一样的,唯一的不同在于属性提供了get访问器和set访问器。这使得我们可以在为属性进行取值和赋值的时候定义一个自定义的方法。

属性本质上可以看作是字段的一层封装,它的内部包含了一个私有字段,并提供了一个get和set来读写这个私有字段,如下所示:

pulic class User
{private string m_name;//_name为字段public string Name   //Name为属性,它含有代码块{get{return m_name;//读取(返回_name值)}set {m_name= value;//为m_name赋值,value可以直接获取赋值}}
}

所以为什么我们要多一层封装而非直接将字段public出来呢?因为程序设计中我们不希望一个字段可以被其他类轻易的访问,有时我们只想它可读或者可写,或者在读写时进行一些其他操作。如果不用属性则需要定义读写的方法,显然太麻烦了。

使用属性,我们可以用get代表字段可读,set代表可写,以此控制字段的读写权限。同时属性接口是只对外的(对内直接修改字段即可了),我们可以自定义访问器的代码,保证了外部修改的安全性。

所以我们才建议将字段作为类中的私有变量,属性作为公共变量,通过属性的设置,我们既可以灵活的定义读写字段时会发生什么事情,也可以很好的封装字段以实现保护的目的。


不同的使用情况

公共字段:

  1. 允许自由读写
  2. 取值范围只收数据类型约束而无其他任何特定限制;
  3. 值的变动不需要引发类中其它任何成员的相应变化;

如果满足上述情况,则可以自由使用public 的字段,但是还是不建议使用

属性:

  1. 要求字段只能读或只能写;
  2. 需要限定字段的取值范围;
  3. 在改变一个字段的值的时候希望改变对象的其它一些状态;

然而为什么我们建议使用属性而非公共字段,从设计的耦合性和项目的可维护性来举例,假如我们只是公开了这个字段,一旦我们想要修改这个字段的某些处理逻辑,那就必须对每一个引用了该字段的类中都进行处理。而使用属性,我们则只需要设置get方法即可。

实际上属性并不占用内存,只是用起来冗余一点,但是对于工程的提升是实打实的。

并且.net也提供了语法糖,我们只需定义属性即可使用同名字段了(打出prop+回车 自动补全):

public int Index{ get; set; }

http://www.fp688.cn/news/164012.html

相关文章:

  • 网站优化竞争对手分析好的产品怎么推广语言
  • 上海本地网站建设广东网站seo
  • 品牌商城网站建设做外贸怎么推广
  • 晋城网站制作公司做网站排名服务热线
  • 同类色相的网站百度关键词搜索优化
  • http:设计家园.comwordpress培训考试哪家公司做seo
  • 没效果廊坊seo排名优化
  • 最专业的做音乐网站东莞网络优化哪家好
  • 发稿是什么意思搜索引擎优化的英文缩写
  • 怎样做网站个人简介云南疫情最新情况
  • 北京市网站建设公司排名谷歌搜索引擎免费入口
  • 招商加盟外包公司东莞seo计费
  • 做网站买空间百度如何快速收录
  • 上海网站设计找哪家深圳媒体网络推广有哪些
  • 网站开发怎么做才有利于seo建站宝盒
  • 手工艺品网站建设侧胡顺百度是国企还是央企
  • 做企业网站需要哪些百度2023免费下载
  • 潍坊 企业网站建设网络舆情案例分析
  • b2b2c平台是什么意思seo入门到精通
  • 域名申请通过了网站怎么做百度竞价是seo还是sem
  • 真正免费的网站建站平台一千锋教育介绍
  • 在线自助网站按照程序营销一体化平台
  • 网站广告下悬浮代码怎么做其他搜索引擎
  • 西宁网站建设有限公司seo外包方法
  • 英文做影评的网站十大免费b2b网站
  • 宿迁做网站的教育培训机构网站
  • 自建网站做淘宝联盟竞价托管服务多少钱
  • 群晖 wordpress 端口 转发山东进一步优化
  • 做婚纱摄影网站广东免费网络推广软件
  • 南通建设网站合肥seo排名公司