一、访问修饰符

在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. 使用Amoeba for mysql实现mysql读写分离(测试可行)

    Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发.座落与Client.DB S ...

  2. Android开发过程中部分报错解决方法。

    初学Android,最近在使用zxing开发一个条码扫描解析的安卓项目中,遇到以下几个问题.贴出来以供参考. 1.Http请求错误    Android4.0以上要求不能把网络请求的操作放在主线程里操 ...

  3. mybatis简单示例

    1.引入mybatis.jar mysql-connector-java-5.1.47.jar <dependency> <groupId>org.mybatis</gr ...

  4. ubuntu 下查找某个文件的方法

    1.whereis 文件名 特点:快速,但是是模糊查找,例如 找 #whereis mysql 它会把mysql,mysql.ini,mysql.*所在的目录都找出来. 2.find / -name  ...

  5. webpack缓存

    缓存 缓存如何工作 1.当缓存客户端需要访问数据时,它首先检查缓存.当在缓存中找到所请求的数据时,它被称为缓存命中. 2.如果在缓存中找不到请求的数据 , 称为缓存未命中的情况,它将从主存储器中提取并 ...

  6. 1094 FBI树

    1094 FBI树 2004年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver       题目描述 Description 我们可以把由“ ...

  7. 常用DOM结构方法总结

    ---内容开始--- 获取元素的方法: getElementById() 通过ID名获取元素 getElementsByTagName() 通过元素(标签)名称 getElementsByClassN ...

  8. ${pageContext.request.contextPath}是JSP取得绝对路径(转载)

    ${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> . 也就是取出部署的应用程 ...

  9. linux注册服务教程

    该说明是项目完成很久之后,整理资料时的偶然发现,当时所操作的linux为中标麒麟,需要对项目进行开机自启,对llinux还不熟悉,找不到linux中的服务自启设置.辗转多次才找到了解决方案.记录以供参 ...

  10. C++ 输出菱形

    输出*号组成的菱形: // print.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> ...