【笔记篇】C#笔记3
笔记目录:http://blog.csdn.net/enzymii/article/details/77169928
- C#的接口有点意思,我们说过可以用来多重继承。。
using System;
namespace HelloWorld
{
interface IParentInterface
{
void add();
}
interface IMyInterface:IParentInterface //接口可以继承..
{
void minus();
}
class TwoNumber : IMyInterface, IParentInterface //接口还可以多重继承..
{
public void add()
{
Console.WriteLine("Add");
}
public void minus()
{
Console.WriteLine("Minus");
}
}
class MainProcess
{
static void Main()
{
TwoNumber tw = new TwoNumber();
tw.add();
tw.minus();
}
}
}
尽管这东西之前也没接触过,但看过多态之后就比较明白,比较好理解了。。。
1. namespace是没啥好讲的哈。
2. 预处理器指令
- #define会用,而且C#的#define好像适用范围比C++窄,比如不能用来压行。。。
- #undef #else #elif都会
- C++里我一般用#ifdef而非#if但好像一个道理就比较简单
- #error和#warning我懂啥意思但没亲自用过
可能就这些吧= =
下面就是令我头痛欲裂,看了好几遍都难以理解的“正则表达式”。。。
今天看了一篇blog,讲得还不错,再加上我百度百科都看了好几遍,终于对正则表达式有了初步的理解。。这篇blog的链接我放一下:https://deerchao.net/tutorials/regex/regex.htm
由于正则表达式我没有深刻理解,故不敢妄言。。
正则表达式好像是用来匹配字符串的(乍一看,这不就是乱码嘛)。。在不少情况下有着非常良好的表现,.net框架中实现了一个正则表达式引擎。。
然后就是背各种各样的要素了,这个还是用到的时候查表吧。。毕竟用的多自然就背过了。。异常处理
C#的异常处理比C++多了个finally关键字。。据说是用于不管是否抛出异常都要执行的语句。。
try,throw,catch应该都是一样的。。。
不过C#的异常是使用类来表示的= =
有很多预定义的异常类,这个要去了解。
比如:
System.DividByZeroException //被零除异常
然后还可以自定义异常= =
举个栗子:
using System;
namespace HelloWorld
{
public class MinusException : ApplicationException
{
public MinusException(string message) : base(message)
{
}
}
class NumCheck
{
public int num = 0;
public void Setnum(int x)
{
num = x;
}
public void Checknum()
{
if (num < 0)
{
throw (new MinusException("The Num is Minus!"));
}
else
{
Console.WriteLine("The Num is:{0}", num);
}
}
}
class MainProcess
{
public static void Main()
{
NumCheck x = new NumCheck();
try
{
x.Setnum(2);
x.Checknum(); //无异常
x.Setnum(-2);
x.Checknum(); //抛出异常
x.Setnum(2);
x.Checknum(); //无异常
}
catch(MinusException minus)
{
Console.WriteLine("Exception:{0}", minus.Message);
}
finally
{
Console.WriteLine("num:{0}", x.num);
}
}
}
}
以上程序的运行结果为:
所以很明显,抛出异常之后try{}里剩下的代码不会运行,而finally里的会运行。
所以基本就这样吧= =
- 文件I/O实在是太多了……等用到再慢慢研究吧= =
本篇中还要学习的(话说之前欠下的我还没还呢):
0. 今天学到的东西以前基本都没接触到过或是只学到了一些皮毛,要多加练习。。
1. 使用一下自己没使用过的预处理器指令
2. 正则表达式
3. finally关键字、异常类
4. 文件I/O
最新文章
- 关于EF6的记录Sql语句 与 EntityFramework.Extend 的诟病
- 微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)
- JVM相关
- Unity3D着色器Shader编程入门(一)
- Windows Phone Listbox虚拟化的问题
- 在Web API中使用Swagger-UI开源组件(一个深坑的解决)
- sqlite3使用入门
- 使用httpclient抓取时,netstat 发现很多time_wait连接
- win7 资源管理器的背景色修改
- 关于binary log那些事——认真码了好长一篇
- 简简单单的Vue4(vue-cie@3.x,vue’Debug[调试],vue‘sHttp)
- kubernetes入门之构建单机集群
- 使用Twitter异常检测框架遇到的坑
- node之常用模块
- Linux服务器mysql,nginx等自动停止的排查,以及解决方法
- centOS 6.5上安装mysql5.7压缩版
- Avito Cool Challenge 2018(div1+2)
- 5V and 3V Level Translators
- PowerDesigner教程系列(三)概念数据模型
- oracle decode函数 和 case when