c#中的类和java中的类没什么太大区别。但是c#有些特有的关键字以及属性使得c#具有一些特性。

  首先就是this关键字,this在c++和java中都有,可以表示当前对象,以及变量所属对象等。例如

public void somemethod(int hour1){
    this.hour = hour1;
}

或者otherobject.bar(this) 把当前对象传给otherobject

还有就是指示变量属于哪个对象。
this.z = 5;

等等。这里不作赘述。

  c#中还有using关键字,

class t{
  using(font thefont = new font("a",10.0f))
{
    //use thefont
}//compiler will call dispose on thefont

thefont在using中用完后会被直接析构,安全稳定。

同时要避免下面这种用法。

font thefont = new font()
using(thefont){
//use thefont
}//dispose

这样thefont也会被析构,所以外界不能再用thefont了。所以会存在风险。

  在c#中,函数的变量传递默认是值传递,所以函数内部对变量的修改若没有返回的话是不会对外部产生影响的。

所以这里就要提到一个ref关键字。ref会使变量按引用传递。下面是例子:

int a = 0;
some(ref a){
    a = 234;
}
此时在外部a就变成了234。

而这里还有out关键字,out的作用和ref没有太大区别,只是out a

可以不用对a进行初始化,但是需要声明。

  这里还有一个简单的例子区分函数的重载和多态

重载

void myM(int p1);
void myM(int p1,int p2);

返回值不同不是重载
polymorphism多态

void myM(int a);
void myM(string a);

  c#还有一个重要的特性就是它具有属性,即properties

属性可以很好的连接用户和开发者。这里有一个简单的示例

number就是一个属性,set和get可以设置权限,使得外部只能进行限定操作,

而在内部可以对number进行修改。这里有效的连接了用户和开发者。

还有readonly关键字

public static int a;可读可写。
----
public static readonly int a;只能读不能写。

还有inheritance & polymorphism
override 基类要public virtual void 才能显示出多态特性

还有隔断基类方法

public new virtual void Sort()下面是示例

运行之后是

在C中有public new virtual void,所以被隔断,直接停在B。

当然,c#支持运算符的重载,但是运算符重载要遵循实用原则,否则会增加写程序的难度。

以上就是我对c#中类方面关键字的总结。希望对大家有帮助。

C#学习日志 day 4 ------ 类相关---this指针以及相关关键字的更多相关文章

  1. ibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页

    一.实体类或属性名与数据库关键字冲突问题1.实体类名与数据库中的关键字冲突比如:实体表User与oracle中的系统表冲突解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 ...

  2. Cocos2d-x 3.1.1 学习日志3--C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011292087/article/details/37598919 有关const成员.stati ...

  3. 类和对象:一些相关的BIF - 零基础入门学习Python040

    类和对象:一些相关的BIF 让编程改变世界 Change the world by program 一些类和对象相关的 BIF 今天我们来谈谈跟类和对象相关的一些BIF(内置函数): issubcla ...

  4. Cortex-M3学习日志(六) -- ADC实验

    上一次简单的总结了一下DAC方面的知识,好吧,这次再来总结一下ADC方面的东东.ADC即Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器.现实世界是由模 ...

  5. webpack2学习日志

    webpack说容易也容易,说难也难,主要还是看个人,想学到什么样的程度,很多公司可能要求仅仅是会用就行,但是也有一些公司要求比较高,要懂一些底层的原理,所以还是要花一些时间的,看个人需求.这篇仅仅是 ...

  6. composer的安装和使用 学习日志

    如果你做为一个phper,没有用过composer,那你真的不是一个合格的开发者.那么就来记录一下composer的学习日志 下面分享几个学习源头: composer中文网站:https://www. ...

  7. 一个可创建读取日志的管理类(可固定创建2M大小的日志文件)

    这里,将日志管理基类命名为LogManagerBase(抽象类),具体的不同类型的日志可以通过继承完成.该基类可将日志以每个2M的方式存储起来,并可以读取当前正在使用的日志的所有内容. 要实现该基类, ...

  8. 我的游戏学习日志3——三国志GBA

    我的游戏学习日志3——三国志GBA 三国志GBA由日本光荣公司1991~1995所推出<三国志>系列游戏,该作是光荣在GBA上推出的<三国志>系列作品的第一款.本游戏登场武将总 ...

  9. Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!

    Go/Python/Erlang编程语言对比分析及示例   本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...

随机推荐

  1. java日期处理 calendar 和date

    抄的人家的,仅作学习使用. java Date获取 年月日时分秒     package com.util;   import java.text.DateFormat; import java.ut ...

  2. JS前端知识模块大全

    公司前端:小胖提供,表示感谢 1. 基础 HTML, CSS, JS 文档 W3CSCHOOL: http://www.w3schools.com/ MDN: https://developer.mo ...

  3. CEvent,CSemaphore,CCriticalSection,CMutex

    一.用CEvent实现线程同步 事件对象(Event)是最简单的同步对象,它包括有信号和无信号两种状态.在线程访问某一资源之前,也许需要等待某一事件的发生,这时用事件对象最合适.例如,只有在通信端口缓 ...

  4. Java数组复制

    System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.其函数原型是: public static void arraycopy(Object src, int sr ...

  5. ENVI5.1批量镶嵌工具界面按钮显示不全的解决方案

    打开批量镶嵌工具,在导出文件界面,部分按钮显示不全.具体见下图: 图 1 界面按钮显示不全 解决方案: 以win7.8系统为例: 显示桌面 – > 右键“个性化” – >显示 – > ...

  6. NodeJS爬虫系统初探

    NodeJS爬虫系统 NodeJS爬虫系统 0. 概论 爬虫是一种自动获取网页内容的程序.是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上是针对爬虫而做出的优化. robots.txt是一个文本文 ...

  7. java通过JNI接口调用C语言-初级

    JNI(java native interface):即java本地调用C的接口. 先看整体运行: 下面是过程: #vim test.java public class test{ public na ...

  8. 3D项目处理点选操作步骤

     1.用notepad++模型的obj格式文件,查找到模型各个部分的名称,命名规则:g mesh......,把名字改为规则命名.  2.选择处理 #ifdef _DEBUG #pragma comm ...

  9. java实现发送短信

    本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了.在使用前需要注册,注册地址为http://sms.webchinese. ...

  10. 《转》JAVA中PriorityQueue优先级队列使用方法

    该文章转自:http://blog.csdn.net/hiphopmattshi/article/details/7334487 优先级队列是不同于先进先出队列的另一种队列.每次从队列中取出的是具有最 ...