一、访问修饰符

在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. MYSQ系列-MYSQL基础增强(Mysql基本语句)

    MYSQL基础增强 库操作 创建一个使用UTF-8字符集的数据库: create database mydb character set UTF8; 创建一个带校对集的数据库 create datab ...

  2. Lubuntu"软件包 没有可安装的候选者"解决办法

    在用VMware 安装 Lubuntu 虚拟机时,为了减少安装程序下载更新软件包的时间(安装程序默认的软件源速度较差,而且当某一软件包下载卡住,安装程序竟然要一直等待,这个过程通常会耗用大量时间,有时 ...

  3. 【Linux相识相知】文件查找(locate/find)

    在用linux操作系统的时候,当我们忘记之前某个文件存储的位置,但是知道其文件名或者模糊的知道其文件名,我们都可以通过文件查找工具来查找,linux提供两种常用的查找工具,locate和find,在日 ...

  4. winfrom 树勾选

    树勾选 /// <summary> /// 树勾选 /// </summary> /// <param name="sender"></p ...

  5. IIS7部署网站出现500.19错误(权限不足)的解决方案

    错误摘要 HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core 通知 未知 处理 ...

  6. UDP client,UDP server, TCP server, TCP client

    UDP server import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocke ...

  7. Cannot execute request on any known server

    1.com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: c ...

  8. HTML行内元素、块状元素和行内块状元素的区分

    HTML 5 的常用元素分类 HTML可以将元素分类方式分为行内元素.块状元素和行内块状元素三种,这三者是可以互相转换的,通过display属性可以实现互相转换 (1)display:inline;转 ...

  9. Stage1--Python的特点和安装

    说在前面: Stage1-Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事 ...

  10. 17_重入锁ReentrantLock

    [概述] 重入锁可以完全代替synchronized关键字. 与synchronized相比,重入锁ReentrantLock有着显示的操作过程,即开发人员必须手动指定何时加锁,何时释放锁,所以重入锁 ...