一、访问修饰符

在C#中的访问修饰符有:private、protected、internal、public
public:公共类型,同一程序集或其他程序集都可以访问此成员
private:私有类型,同一类里或结构里才可以访问此成员
protected:保护类型,同一类里或者派生类中才可以访问此成员
internal:内部类型,只有在同一程序集才可以访问此成员

访问性不一致:子类的访问权限不能比父类高。防止暴露父类的信息。。

二、static、const、readonly的区别

static :是静态的,共享的,可以更改的,定义的时候未赋值的时候,默认为类型的默认值;适用于类的多个实例共享一个属性或字段
const:定义的时候必须赋值,后面就改不了。
readonly:声明后,可在构造函数中初始化或者定义的时候赋值,实例对象不能修改。
 

三、ref与out

1、ref在使用前,要先赋值。而out参数在调用的方法里必须赋值,所以哪怕在传递之前赋值了,也没什么意义;
2、当一个方法同时返回多个值的时候,可以考虑采用out参数;
3、ref主要是把一个值带进去,再带出来。out是带不进去,带出来。
 

四、可变参数:Param

1.可变参数只能放在参数列表的最后位置;
2.可以传1个值,可以传多值,也可以不传值。可变参数不是null;
3.若传的长度为0的值,可变参数数组是一个长度为0的数组,但是,不是null
 

五、值类型和引用类型

1.所有的引用类型都继承自Object,所有的值类型都继承自System.ValueType;
2.引用类型对象赋值,只复制对对象的应用,值类型对象赋值,拷贝个副本给他;
3.对于值类型来说:栈中存储的就是直接使用的数据。对于引用类型来说:栈中存储的是堆中对象的地址。
 

六、枚举与标志枚举[Flags]

一般枚举的特性:
1.一般枚举的每个值都是互斥的;
2.枚举的每个值都有一个对应数值来表示。可以手动设置对应的整数。一般都是使用int来替代;
3.枚举在编译完成后,就已经用对应的数据常量来表示;
4.枚举里的值可以转换为字符串。ToString()方法。
标志枚举[Flags]:
1.可以同时赋值多个枚举值,如文件的属性 xx |xxx;
2.标志枚举要在定义前,加上[Flags] :表示,.ToString返回的就是文字形式,不是数字的。赋值可以通过 |;
3.验证是否有这个枚举的数,可以采用if(枚举变量&枚举.值)==枚举.值
 

7、面向对象

面向对象的三大特性:封装、继承、多态
面向对象的原则:对扩展开放,对修改关闭。
 
转载自:http://www.cnblogs.com/polk6/archive/2012/10/03/2710864.html

C# 基础(一) 访问修饰符、ref与out、标志枚举等等的更多相关文章

  1. Java基础——protected访问修饰符探讨

    Java基础——protected访问修饰符探讨 根据官方说法:(如图) protected修饰符是可以修饰其他包中的子孙类的,但是我做了个实验,结果发现了一个有趣的现象! 具体请往下看: packa ...

  2. C#基础之访问修饰符

    C#访问修饰符,无时无刻都在使用,这里记录一下,如果写错的地方,欢迎指正. public :公有的,任何代码均可以访问,应用于所有类或成员: internal:内部的,只能在当前程序集中使用,应用于所 ...

  3. OC基础之访问修饰符

    做C#.Java的人都知道private.protect.public这些访问权限,在OC中看项目基本都没用到这些,昨天就好奇的仔细了解了下,其实OC中也是有这些访问权限的修饰.说实话有好多做过编程的 ...

  4. (C# 基础) 类访问修饰符

    C# 中有5个权限修饰符,用于控制对对象的访问权限. 1. public:   访问不受限制. namespace, enum成员,interface成员 隐式的具有public 修饰符,不能在显式添 ...

  5. C#基础回顾(一)—C#访问修饰符

    一.写在前面的话 好久没有停下来总结自己,转眼间15年过去好些天,回首过去的日子,亦或失去,亦或所得!生活的节奏,常常让我们带着急急忙忙的节奏去追赶,也许这并不是每个人所期望的生活方式!于他人,于自己 ...

  6. [.net基础]访问修饰符

    标题:[.net基础]访问修饰符 一.前言 基础掌握不牢固啊,所以记录下来. 二.方法访问修饰符Internal (1).创建工程ParentAndSon (2).添加类ModelA namespac ...

  7. 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)

    1:C#中的访问修饰符 public: 公共成员,完全公开,没有访问限制. private: 私有的,只能在当前类的内部访问. protected: 受保护的,只能在当前类的内部以及该类的子类中访问. ...

  8. C#基础知识八之访问修饰符

    1.  类的访问修饰符 修饰符 访问权限 无或者internal 只能在同一个程序集中访问类 public 同一个程序集或引用该程序集的外部都可访问类 abstract或internal abstra ...

  9. .NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]

    注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 ...

随机推荐

  1. Windows的加密能力

    尽管Windows不再具备往日那样的统治地位,在智能手机领域,甚至已经沦落为一种小众平台,Windows仍然是主要的商业应用运行平台.软件开发平台.硬件及结构等设计软件运行平台.大多数人在学习计算机时 ...

  2. BNU 20950 ——沉重的货物 —————— · 最短路、最短边最大化」

    沉重的货物 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: ...

  3. 白话SpringCloud | 第十一章:路由网关(Zuul):利用swagger2聚合API文档

    前言 通过之前的两篇文章,可以简单的搭建一个路由网关了.而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的.现在由于使用了统一 ...

  4. (三)TestNG

    1.testNG的部分注解 test测试方法都是执行顺序:并不是从上往下执行的,而是根据方法名ASCII码进行执行的,小的先执行 比如a比b先执行,1比2先执行,不管代码放的顺序是怎么样. impor ...

  5. SpringMVC框架下实现分页功能

    1.创建实体类Page.java @Entity public class Page { private int totalRecord;// 表示查询后一共得到多少条结果记录 private int ...

  6. C#-01.语法基础

    a. 语法基础 i. 命名空间(namespace):是 C# 中组织代码的方式,用来声明命名空间 . 语法:namespace 命名空间名称{ //命名空间的声明 } . 作用:可以把紧密相关的一些 ...

  7. 关于C#的Lock锁思考

    大家都知道多线程并发时候存在一个线程同步的问题,一般使用lock关键字来处理. lock关键字的结果如下: object locker=new object(); lock(locker) { ... ...

  8. 富文本编辑框和防止xss攻击

    一.后台管理页面构建 1.创建后台管理url urlpatterns = [ ... # 后台管理url re_path("cn_backend/$", views.cn_back ...

  9. BZOJ4010: [HNOI2015]菜肴制作(拓扑排序 贪心)

    题意 题目链接 Sol 震惊,HNOI竟出NOI原题 直接在反图上贪心一下. // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include& ...

  10. php有经纬度计算距离

    /** *  @desc 根据两点间的经纬度计算距离 *  @param float $lat 纬度值 *  @param float $lng 经度值 */  function getDistanc ...