分类

链接

2025 年 4 月
 123456
78910111213
14151617181920
21222324252627
282930  

近期文章

热门标签

新人福利,免费薅羊毛

改善您的C#程序系列(7)-初始化器

(译注:根据我个人对文章的理解,我把initializer译为:初始化器,它是指初始化语法,也就是在一个类里声明变量的同时,直接创建实例值的方法。 例:object m_o = new object();如果这段代码不在任何函数内,但在一个类里,它就是一个初始化器,而不管你是把它放在类的开始还以结尾。) 一些类经常不只一个构造函数。时间一长,就难得让它的成员变量以及构造函数进行同步了。最好的确保这样的事不会发生的方法就是:在声明就是的时间就直接初始化,而不是在每个构造函数内进行赋值。而且你应该使用初始化器语法同时...

.NET 暂无评论 阅读(2,331)

C#中值为NULL时计算出错处理方法

 static void Main(string[] args)  {             Nullable<int> x1 = GetNullableType();//可空结构             if (x1.HasValue)//判断是否有值,也就是是否为null             {                 Console.WriteLine("x1有值得{0}", x1.Value); //获取value             }             else             {  Console.WriteLine("x1无值."); }             int? x2 = 0;             int? x3 = x1 + x2;//两个运算数据一个为null则结果为null             int y1 = x3 ?? 1;//结合运算符,如果??前的数据...

.NET 暂无评论 阅读(2,985)

删除DataGridView行:了索引1处没有值

DataGridView 用DATASOURCE绑定数据后的删除行的方法(不删除数据库中数据,只删除DataGridView )  private void btnDeleteCurrentRow_Click(object sender, EventArgs e)         {             List<DB.Item> list = (List<DB.Item>)dataGridView1.DataSource;               List<DB.Item> selectList = new List<DB.Item>();               for (int i = dataGridView1.SelectedRows.Count - 1; i >= 0; i--)             {                 selectList.Add((DB.Item)dataGridVi...

.NET 暂无评论 阅读(3,138)

Linq Max函数用法

今天试着从Entity FrameWork 的DbSet中查询出ID最大的那一条记录,用原生的select语句该这样写: view plain select * from Trip.dbo.Test   where SID=(select MAX(SID) from Trip.dbo.Test)   可是用Linq该怎样写呢?我们可以试着按原生的select语句来写,如: view plain TripEntities te = new TripEntities();   DbSet<Test> testSet = te.Set<Test>();   var a = testSet.Where(t => t.SID == testSet.Max(tt => tt.SID));   或者 view plain var a = from test in te...

.NET 暂无评论 阅读(9,002)

Linq to Entity 连接(join) Linq to Object

数据库的数据代码Linq to Entity在join前,内存中数据代码Linq to Object在join后。代码如下: view plain var entityNames = (from en in entitySet                      join ob in objectList                      on en.SID equals ob.Identity                      select en.Name).ToList();   好了,编译通过,运行时抛异常了。 Only Primitive types ('Such as Int32, string, and Guid') are supported in this context 中文意思是“无法创建类型为“项目名.MyObject”的常量值。此上下文仅支持基...

.NET 评论(1) 阅读(4,596)

Linq to EF 与Linq to Object

我们首先来看这段代码:(注意:Linq代码里是把内存中的数据代码,也就是Linq to object放在join前面,数据库的数据代码放在join后面) view plain List<MyObject> objectList = new List<MyObject>();   objectList.Add(new MyObject { Identity = 1, Name = "Jack", Age = 30 });   objectList.Add(new MyObject { Identity = 2, Name = "Sam", Age = 28 });   objectList.Add(new MyObject { Identity = 3, Name = "Lucy", Age = 23 });      EntityRepository repository = new EntityReposit...

.NET 暂无评论 阅读(3,008)

改善您的C#程序系列(5)-值类型与引用类型

区别值类型数据和引用类型数据  值类型数据还是引用类型数据?结构还是类?什么你须要使用它们呢?这不是C++,你可以把所有类型都定义为值类型,并为它们做一个引用。这也不是Java,所有的类型都是值类型。你在创建每个类型实例时,你必须决定它们以什么样的形式存在。这是一个为了取得正确结果,必须在一开始就要面对的重要决定。(一但做也决定)你就必须一直面对这个决定给你带来的后果,因为想在后面再对它进行改动,你就不得不在很多细小的地方强行添加很多代码。当你设计一个类型时,选择struct或者class...

.NET 暂无评论 阅读(2,420)

改善您的C#程序系列(4)-ToString()

在.Net世界里,用得最多的方法之一就是System.Object.ToStrying()了。你应该为你所有的客户写一个“通情达理”的类(译注:这里是指这个类应该对用户友好)。要么,你就迫使所用类的用户,去使用类的属性并添加一些合理的易读的说明。这个以字符串形式存在,关于你设计的类的说明,可以很容易的向你的用户显示一些关于对象的信息到:Windows Form里,Web Form里,控制台输出。这些字符说明可以用于调试。你写的任何一种类型,都应该合理的重写这个方法。当你设计更多的复杂的类型时,你应该实现应变能力更强的IFormatt...

.NET 暂无评论 阅读(2,329)

改善您的C#程序系列(2)-readonly与const

为你的常量选择readonly而不是const 对于常量,C#里有两个不同的版本:运行时常量和编译时常量。 因为他们有不同的表现行为,所以当你使用不当时,将会损伤程序性能或者出现错误。 两害相权取其轻,当我们不得不选择一个的时候,我们宁可选择一个运行慢一点但正确的那一个,而不是运行快一点但有错误的那个。基于这个理由,你应该选择运行时常量而不是编译时常量(译注:这里隐藏的说明了编译时常量效率更高,但可能会有错误)。 编译时常量更快更直接,但在可维护性上远不及运行时常量。保留编译时常量是为了满足...

.NET 评论(1) 阅读(2,944)

改善您的C#程序系列(1)-属性与数据成员

尽可能的使用属性(property),而不是数据成员(field)。  出于以下几点原因,请在设计类时,尽可能的使用属性,而不是成员。 1、.Net对属性的支持远远大于对成员的支持,你可以对属性进行数据绑定,设计时说明等很多数据成员不被支持的内容。看看.net里的属性面板,你会明白的。 2、数据安全性检测; 属性本质上是两个函数,只是因为C#的特殊语法,但我们可以像访问成员一样的访问它。因此我们可以在属性设计上添加更多更灵活的内容,对属性进行管理。其中对属性数据的检测是其中之一。 在对数据检测时,如果...

.NET 评论(1) 阅读(2,711)