c#学习笔记
来源:互联网 发布:红色警戒mac官网下载 编辑:程序博客网 时间:2024/05/11 17:03
首先,我要说明,这是写给我自己看的,记录自己以前不牢固的知识点,如果你进来了,我只能说:“sorry !”。
其次,小小的抱怨一下-----csdn的博客不支持无限极分类,以后笔记只能笼统的放一起了。
最后,正文~~
类和接口
1.密封。
使用 sealed 关键字来禁止类的继承或成员的重写,如 string 类。
public sealed class String{ //...}public class Parent{ public sealed void Method() { //... }}
2.重写。
重写的目的是:使用基类实例调用派生类的方法。关键字为一对,virtual----override。
class Program { static void Main(string[] args) { Parent c1 = new C1(); Parent c2 = new C2(); c1.WriteName();//out:c1 c2.WriteName();//out:parent } } class Parent { public virtual void WriteName() { Console.WriteLine("Parent"); } } class C1 : Parent { public override void WriteName() { Console.WriteLine("c1"); } } class C2 : Parent { public new void WriteName() //不指定new关键字是一个结果,但是会有一个警告 { Console.WriteLine("c2"); } }3.扩展方法。
不利于扩展,建议已修改源码或者继承的方式实现。但对于无法获得源码又没法继承的类就只能这样了。注:扩展方法也可以用于接口和集合。
class Program { static void Main(string[] args) { string str = "123"; Console.WriteLine(str.ToInt() + 12); } } public static class Hander { public static int ToInt(this string str) { return Int32.Parse(str); } }
4.接口。
接口可以提供方法或属性的契约,如果是属性,需指定get或set。实现时必须给出实现,即{};另外接口的定义不应该包含任何访问修饰符。显式实现(即方法名前加接口名.)必须与接口一致。隐式实现则可指定为public,并使用其他修饰符,如:virtual、sealed。
5.运算符重载。
可以对+ - * / % & | ^ << >> 及其与赋值运算符的复合运算符(自动), == != true false,转换运算符(隐式转换implicit,显式转换expliclit) 进行重载。
class Class1 { private int data; public static int operator +(Class1 left, Class1 right) { return left.data + right.data; } public static bool operator true(Class1 c) //必须和false成对出现 //可用于if、do、while、for { return c.data != 0; } public static bool operator false(Class1 c) { return c.data == 0; } public static implicit operator int(Class1 c)//隐式 { return c.data; } public static explicit operator Class1(int d) { return new Class1(); } }
- C#学习笔记 ----C#变量
- c#学习笔记(1)
- C#学习笔记
- C# 学习笔记
- C#学习笔记(一)
- C#学习笔记(二)
- C#学习笔记(三)
- c#学习笔记
- C#学习笔记
- C#学习笔记
- C#学习笔记
- c#深入学习笔记
- C#学习笔记(1)
- C#学习笔记之一
- C#学习笔记
- C# 学习笔记
- C#学习笔记--Position
- C#学习笔记--BindingContext()
- 异常/bin/sh^M: bad interpreter: No such file or directory
- 谁的青春不疯狂-----致青春
- 网络笔记
- Apache搭建反向代理用Http访问Https站点
- this指针基础介绍
- c#学习笔记
- 打开Eclipse弹出错误提示:The Eclipse executable launcher was unable to locate its companion shared library.
- ArcGIS API for Flex3实现Query查询定位功能
- SDK使用 Mapping File 提高文件读写效率
- Microsoft Anti-XSS库
- Could not instantiate class named NSLayoutConstraint
- perl笔记
- 常用排序算法 的分析与对比
- 基于QT4的智能温度采集控制系统