摘要:
最近的工作是导数据库,把原有库里的内容导入到新的数据库中。遇到这么一个问题。新数据库有个表有trigger,trigger又调用一个function.function里面是运行CLR加密。(SHIT)正常插入数据都没有问题,但是我写SQL导入数据,抛异常An error occurred in the Microsoft .NET Framework while trying to load assembly id 655..找了一下,微软官方有个结局方案。To resolve the trust issue, open SQL Management and execute the follo 阅读全文
摘要:
看来简单的代码实现已经不在话下,那我们再来研究一下函数。函数就是把一段相关内容的代码整合在一起,赋予一个函数名,函数也可能会有参数和返回值。这个跟C++中的函数是一致的,并且C#中的函数也可以根据参数的不同进行重载。那么差别在哪里呢?一个我们要强调的是,在C#中不存在全局函数。使用Main函数的时候我们知道,所有的函数都是属于某个具体的类,哪怕是Main这样的函数也是如此。另一个就是参数的修饰。回... 阅读全文
摘要:
做一个猜数的小游戏。程序随机生成一个0~100的数字,让用户猜,不停地给用户提示,猜得数字太大或太小,一直到用户猜中为止。 第一个要解决的问题是随机生成数字如何写。这一点我还是强烈建议同学要学会自己查看msdn。打开msdn,输入Random会看到相关的信息。找到微软示例。自己试试看吧。 第二个要解决的“不停地提示,直到..为止”。用计算机的语言来说,这就是循环。 C#的循环和C++的一样,就是f... 阅读全文
摘要:
如果用户输入的不是数字。那么 就会抛一个System.FormatException的异常,导致程序意外终止。跟C++一样,我们可以捕捉住异常进行处理。C#的异常类都是继承自System.Exception的。如果想大小通吃,我们也可以catch(Exception e)。System.Exception有几个重要的属性,可以帮助了解异常的更多信息。System.Exception.Message... 阅读全文
摘要:
C#中控制台的显示使用System.Console来实现。写就是Console.Write,读就是Console.Read,非常直观。并且我们看到打印是字符串的拼接用的是C字符串拼接的那一套规范,说实话,我对std::cout<<早就看不顺眼了,还是习惯C时代的sprintf,现在开心了,又回到了最熟悉的那种方式。打印的时候,还可以对内容进行Format 我们来写一短小代码吧——设定一... 阅读全文
摘要:
System.String直接继承于System.Object,所以它绝对是一个引用类型。但是—— 它有昵称,叫string,也许是为了配合STL中的string吧。 创建一个string对象也不用new,直接赋值就可以了 string str=”123”; string的比对跟值类型相似,是按内容比对,而不是按地址比对。如果两个string都是 "A"那他们就是相等的。 ... 阅读全文
摘要:
上一节我们知道C#的int, double是一种类型,而类型本身可以包含成员变量成员函数,所以C#中的int除了普通赋值外还可以有.操作。 再介绍几个常用的值类型。decimal也是个浮点数,它比double大一倍,比float大两倍。还有两个很好用的值类型一个叫做DateTime代表日期,一个叫做TimeSpan代表时间间隔。值类型也是没有NULL之说的。int只能赋值0,1,-1之类的值。不过... 阅读全文
摘要:
这段看似和C++一模一样的局部变量定义代码,其实内部运行的方式有很大的差异。这些int, double不再是以往简单的内建类型,而是C#数据类型的别名。我们看一下CTS规定的,也就是C#所遵循的系统类型层次结构。 如图所示C#语言是单根的。也就是说所有的类型都集成于一个类,这个类叫做System.Object。所有直接继承于System.Object的类,都叫做引用类型。所有继承于ValueTyp... 阅读全文
摘要:
说了那么多道理,我们写一个程序看看。 先熟悉一下开发环境。这次我们就用VS2010。 新建一个控制台项目。VS帮我们生成了这么一段代码。 最后,有一个main函数。static void Main(string[] args){}。看来在C#中程序的入口还是Main函数。不过还是略微有些差别。很重要的一点,是Main函数现在是属于某个具体类的函数,而不是全局函数了。C#中不存在任何全局变量或全局函... 阅读全文
摘要:
我们已经知道,不同的.NET语言通过各自的编译器,可以编译出相同的中间文件。在运行时,CLR并不知道某个中间文件是由什么语言写出来的,它只需要遵循中间文件的规范,就可以运行该文件了。 能够通过这种方式实现跨语言性还有一个重要因素是所有语言支持的基本类型都是一致的。他们都是符合CTS规范的。 CTS规范属于CLR的范畴之内,它的全称是Common Type System。它规定了符合CTS规范的语言... 阅读全文