我已经阅读了几篇关于不变性的文章,但仍然没有很好地遵循这个概念.
我最近在这里提到了一个线程,提到了不变性,但由于这本身就是一个话题,我现在正在制作一个专门的线程.
我在过去的帖子中提到过,我认为不变性是将对象设为只读并使其可见性低的过程.另一位成员表示,这与此没有任何关系.此页面(系列的一部分)使用不可变类/结构的示例,它使用readonly和其他概念将其锁定.
在这个例子中,状态的定义究竟是什么?国家是一个我没有真正掌握的概念.
从设计指南的角度来看,一个不可变的类必须是一个不接受用户输入并且真的只返回值的类?
我的理解是,任何只返回信息的对象都应该是不可变的并且"锁定",对吧?因此,如果我想在具有该方法的专用类中返回当前时间,我应该使用引用类型,因为它将工作类型的引用,因此我受益于不变性.
我正在开始一个新的Web项目,我正在考虑两个演示框架.我在考虑ASP.NET MVC或Silverlight.我倾向于Silverlight,因为我是非常有经验的.NET开发人员,而我只掌握ASP.NET控件的基本知识.
OleDB 提供程序是一个二进制实现由 Microsoft 提供的 COM 接口。由此看来,似乎可以使用 C# 创建提供程序。那是对的吗?是否有样本证明这一点?如果没有,你会阻止我这样做吗?我看到有多个非托管样本,但我找不到任何托管样本。
您建议在64位环境中使用什么代码覆盖.似乎NCover仅在企业版中支持64位,这似乎相当昂贵.或者不是吗?什么人在64位系统上使用.NET代码覆盖?
编辑:我知道CorFlag的解决方法.我想知道别人在做什么/正在使用什么.你在使用其他东西还是在使用带有CorFlag技巧的NCover(免费版)?
我有一张有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分钟).这就是为什么我正在研究实现相同的其他可能性(可能就地=没有移动数据和转换).
.net ×1
64-bit ×1
asp.net ×1
c# ×1
com ×1
database ×1
immutability ×1
ncover ×1
oledb ×1
oop ×1
silverlight ×1
sql-server ×1