小编Dav*_*uda的帖子

什么是不变性,我为什么要担心它?

我已经阅读了几篇关于不变性的文章,但仍然没有很好地遵循这个概念.

我最近在这里提到了一个线程,提到了不变性,但由于这本身就是一个话题,我现在正在制作一个专门的线程.

我在过去的帖子中提到过,我认为不变性是将对象设为只读并使其可见性低的过程.另一位成员表示,这与此没有任何关系.此页面(系列的一部分)使用不可变类/结构的示例,它使用readonly和其他概念将其锁定.

在这个例子中,状态的定义究竟是什么?国家是一个我没有真正掌握的概念.

从设计指南的角度来看,一个不可变的类必须是一个不接受用户输入并且真的只返回值的类?

我的理解是,任何只返回信息的对象都应该是不可变的并且"锁定",对吧?因此,如果我想在具有该方法的专用类中返回当前时间,我应该使用引用类型,因为它将工作类型的引用,因此我受益于不变性.

oop immutability

56
推荐指数
4
解决办法
7726
查看次数

ASP.NET与Silverlight

我正在开始一个新的Web项目,我正在考虑两个演示框架.我在考虑ASP.NET MVC或Silverlight.我倾向于Silverlight,因为我是非常有经验的.NET开发人员,而我只掌握ASP.NET控件的基本知识.

asp.net silverlight

23
推荐指数
2
解决办法
3万
查看次数

用 C# 编写的托管 OleDB 提供程序

OleDB 提供程序是一个二进制实现由 Microsoft 提供的 COM 接口。由此看来,似乎可以使用 C# 创建提供程序。那是对的吗?是否有样本证明这一点?如果没有,你会阻止我这样做吗?我看到有多个非托管样本,但我找不到任何托管样本。

c# com oledb

5
推荐指数
1
解决办法
3816
查看次数

NCover在64位系统上

您建议在64位环境中使用什么代码覆盖.似乎NCover仅在企业版中支持64位,这似乎相当昂贵.或者不是吗?什么人在64位系统上使用.NET代码覆盖?

编辑:我知道CorFlag的解决方法.我想知道别人在做什么/正在使用什么.你在使用其他东西还是在使用带有CorFlag技巧的NCover(免费版)?

.net 64-bit code-coverage ncover

5
推荐指数
1
解决办法
1128
查看次数

将列类型从ntext更改为varbinary(max)

我有一张有ntext野外的桌子.MSDN表示ntext已弃用,他们建议使用其他数据类型:

将来的Microsoft SQL Server版本中将删除ntext,text和image数据类型.避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序.请改用nvarchar(max),varchar(max)和varbinary(max).

在我的特殊情况下,决定切换到varbinary(max).我试图改变表定义,但这不起作用.

ALTER TABLE MyTable ALTER COLUMN MyColumn VARBINARY(MAX);
Run Code Online (Sandbox Code Playgroud)

将类型更改为的可能性有哪些varbinary(max)我尝试从ntext- > nvarchar(max)然后从nvarchar(max)- > 更改类型varbinary(max)但是这是不可能的(错误:不允许从数据类型nvarchar(max)到varbinary(max)的隐式转换).

唯一可行的解​​决方案是添加一个新类型的列varbinary(max),将现有值转换为新列,然后删除旧列.这花了很多时间(在我的数据集大约15GB,大约需要30分钟).这就是为什么我正在研究实现相同的其他可能性(可能就地=没有移动数据和转换).

database sql-server type-conversion

5
推荐指数
1
解决办法
1万
查看次数