Press "Enter" to skip to content

最近的C#学习

学习C#也有一段时间了,今天来写写它的感受吧。这是我第一个能深入地去学习的编程语言,以前学Java的时候,虽然也编写过记事本、手机归属地查询之类的小东西,但是我感觉一直不够深入,从没有过像今天这样去深入的了解C#。

因为JAVA和C#有90的相似度,所以看C#基础知识简直如行云流水一般,不到二周时间,看完了这本整整554页的《C#2.0完全自学手册》。以为自己了解了所有C#的基础知识,于是上网买来一本用C#做项目的实例教程看,结果刚看到第一个项目的时候就傻眼了,那是一个“企业客户管理系统”,设计数据库,画E-R图,再写公共类,我晕晕,总算看到代码设计那一页了,结果整整花了一整天时间,才只搞懂人家的登陆窗口代码……(狂汗!!!)。

关于varchar数据类型
C#中是没有数据varchar这种数据类型的,这是SQL Server数据库中的一种数据类型,所以你可能会在C#相关书中见到它,请不要奇怪。
char:固定长度的非 Unicode 字符数据,最大长度为8000个字符。
varchar:可变长度的非 Unicode 数据,最长为8000个字符。
nchar:是固定长度的 Unicode 字符串类型,最大长度为4000个字符。

关于C#中的decimal数据类型
decimal 关键字表示128位数据类型。同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。

如果希望实数被视为 decimal 类型,请使用后缀 m 或 M ,例如:
decimal myMoney = 300.5m;
如果没有后缀 m,数字将被视为 double 类型,从而导致编译器错误。

整型被隐式转换为 decimal,其计算结果为 decimal。因此,可以用整数初始化十进制变量而不使用后缀,比如:
decimal myMoney = 300;

在 double(浮点型) 和 decimal 类型之间不存在隐式转换;因此,必须使用强制转换在这两种类型之间进行转换。例如:
decimal myMoney = 99.9m;
double x = (double)myMoney;
myMoney = (decimal)x;

关于override修饰符与重载的区别
override修饰符,覆写一个基类中的方法。重载则是将将同名方法重新写过,达到同名的函数实现不同的功能。从而实现了一个方法有不同的版本。override与重载的本质区别是,加入了override的修饰符的方法,此方法始终只有一个被你使用的方法。
override就好像“你叫张三,你爸爸给你修改了名字为李四”;重载就好像“你叫张三,但是别人也可以叫张三”。

MSDN给的解释是“要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符”。

HasRows属性
获取一个值,用于指示相应的 DataReader 中是否包含一行或多行。如果包含有一行或者多行,则返回true,否则返回false。
在C#中的用法:
public bool HasRows {get;}

关于Dataset对象
DataSet是可以把数据读出来,加载到内存中,然后在本机进行数据操作,比如insert、updata、delete等, 然后一并提交给数据库。

微软的解释:“从 System.Data 名称空间使用多种对象,您可以连接到一个数据库服务器,运行查询,然后把结果放到 DataSet 对象中。DataSet 是断开连接的对象。因此,加载数据后,在您想加载更多数据或想使用您对这些信息的内存中副本所作的更改更新服务器之前,不会再使用与数据库的连接。”

关于DataAdapter
DataAdapter 的Update 方法可调用来将DataSet 中的更改解析回数据源。
SqlDataAdapter 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。SqlDataAdapter 通过对数据源使用适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet 中的数据)来提供这一桥接。更新是逐行进行的。对于每个已插入、修改和删除的行,Update 方法会确定已对其执行的更改的类型(Insert、Update 或 Delete)。根据更改类型,执行 Insert、Update 或 Delete 命令模板将已修改的行传播给数据源。当 SqlDataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。

关于BinaryReader
用特定的编码将基元数据类型读作二进制值。

几个生僻单词:
execute:实行, 实施, 执行,履行,操纵,演奏
adapter:适应者,适配器,衔接器,改编者

10 Comments

  1. 古墓候梅 2009-06-02

    太难了吧!
    你是学计算机专业的吧!

    • zk 2009-06-02

      呵呵,我是电子商务专业的,只是对这个比较感兴趣。

  2. JUANS 2009-06-08

    从delphi转换到C#容易很多。

    但是从JAVA转到C#困难些,倒是转到C++容易上手!

    以上属于个人观点!

    http://WWW.PPCQQ.COM 互相捧场

    菜鸟娟儿

  3. yyfox 2009-10-03

    请问博主你说的那本C#实例教程的书具体叫什么?呵呵

    • admin 2009-11-23

      《Visual c#项目开发实例自学手册》(人民邮电出版社的)

  4. tianqing268 2009-10-04

    :-x 个人觉得c++还是比较适合入门的。
    不过博主2周看完500多页的书,如果搞通的情况下,我个人还是 觉得不错的!!

    • admin 2009-10-04

      通是通了 就是不熟 因为我以前已经有过JAVA基础 C#同样是面向对象 所以看起来就跟行云流水一样

  5. 汤尼尔 2009-11-20

    啊呀啊呀~好像又是一个老乡厄~呵呵。期待回访我的小博~ :)

    • admin 2009-11-23

      已经回访了,呵呵,您才是真正的高人哪 :lol: :lol: :lol: :lol:

Your email address will not be published. Required fields are marked *