任何人对是否有任何意见IEquatable<T>或IComparable<T>一般应要求T是sealed(如果是class)?
这个问题发生在我身上,因为我正在编写一组旨在帮助实现不可变类的基类.基类要提供的部分功能是自动实现相等比较(使用类的字段以及可应用于字段来控制相等比较的属性).当我完成时它应该是相当不错的 - 我正在使用表达式树为每个动态创建一个编译的比较函数T,因此比较函数应该非常接近正则相等比较函数的性能.(我使用键入的不可变字典System.Type和双重检查锁定以合理的方式存储生成的比较函数)
尽管如此,有一件事是用来检查成员字段相等性的函数.我的初衷是检查每个成员字段的类型(我将调用X)是否实现IEquatable<X>.但是,经过一番思考后,除非X是这样,否则我认为这是不安全的sealed.原因在于,如果X不是sealed,我无法确定是否X正确地将等式检查委托给虚拟方法X,从而允许子类型覆盖相等比较.
这就提出了一个更普遍的问题 - 如果一个类型没有被密封,它是否应该真正实现这些接口?我想不会,因为我认为接口契约是比较两种X类型,而不是两种类型,可能是也可能不是X(虽然它们当然必须是X或者是子类型).
你们有什么感想?应该IEquatable<T>和IComparable<T>避免对开封类?(也让我想知道是否有一个fxcop规则)
我现在的想法是让我产生比较功能只能用IEquatable<T>在成员字段,其T为sealed,而是用虚拟的Object.Equals(Object obj),如果T是密封的,即使T工具IEquatable<T>,因为该领域可能的潜在店亚型T和我怀疑的大多数实现IEquatable<T>适当设计的传承.
我有一个.NET服务需要向其客户提供实时财务数据.此Feed的输出速率可能会变得很快,我正在寻找最佳架构来实现这种低延迟和高性能的服务.
我正在考虑使用某种流数据提供程序,一种用于音频或视频,但发送Feed更新.
会对这个主题或任何现实世界的例子表示感谢
更新:
我不必使用WCF,这只是我的第一种方法,因为它是当前的技术.欢迎使用C#中的任何其他实现.
以前的JBoss版本包含一个脚本(如jboss_init_redhat.sh),可以复制到/etc/init.d以便将其添加为服务 - 因此它将在启动时启动.我似乎无法在JBoss 7中找到任何类似的脚本.有没有人已经做过这样的事情?
PS我试图在Ubuntu 10.04中实现这一点
在C#中有一些我无法理解的东西.您可以将超出范围int转换为a enum,编译器不会退缩.想象一下enum:
enum Colour
{
Red = 1,
Green = 2,
Blue = 3
}
Run Code Online (Sandbox Code Playgroud)
现在,如果你写:
Colour eco;
eco = (Colour)17;
Run Code Online (Sandbox Code Playgroud)
编译器认为没问题.还有运行时.呃?
为什么C#团队决定实现这一目标?我认为,在这样的场景中,这个决定忽略了使用枚举的重点:
void DoSomethingWithColour(Colour eco)
{
//do something to eco.
}
Run Code Online (Sandbox Code Playgroud)
在像C#这样的强类型语言中,我想假设它eco总是具有合法Colour价值.但这种情况并非如此.程序员可以调用我的方法,其值为17 eco(如前面的代码片段所示),因此我的方法中的代码不能假定它eco具有合法Colour值.我需要明确地测试它并按照我的要求处理特殊值.为什么是这样?
在我的拙见中,如果编译器在将超出范围int转换为a时发出错误(甚至是警告)消息enum,如果int在编译时已知该值,则会更好.如果没有,运行时应该在赋值语句中抛出异常.
你怎么看?这有什么原因吗?
(注意:这是我在很久以前在我的博客上发布的一个问题,但没有得到任何信息回复.)
是否有可能从asp.net中的IP地址获取经度和纬度值?如果有可能,请告诉我如何才能得到这个.
我有一个BitmapImage我在WPF应用程序中使用的,后来我想将它作为字节数组保存到数据库中(我猜这是最好的方法),我该如何执行这种转换?
或者,是否有更好的方法将BitmapImage(或其任何基类,BitmapSource或ImageSource)保存到数据存储库?
尽管我一般不喜欢关于SO的讨论/主观帖子,但我真的很欣赏人们放在一起的"隐藏的秘密"帖子.它们提供了一些您可能现在可能发现的常见错过的工具的概述.
对于这个问题,我想探索Visual Studio .NET调试器.你经常使用或最近发现的VS.NET调试器中有哪些"隐藏的秘密",希望你早就知道?
我有兴趣编写一些基本的计算机化对象识别应用程序,所以我想我需要一些图像处理算法的理论背景,以及一些用于决策能力的AI.
我是计算机科学专业的毕业生,有一天我打算获得硕士学位,希望能够进入这些领域.与此同时,我想先行一步,做一些自学.
所以我的问题是,我从哪里开始?我很欣赏正确方向的箭头,如果可能的话,还有一些链接.
假设如下:
技术上可以将整个视频或音频文件编码到base64中,并使用<audio>或<video>将其嵌入到HTML文档中吗?
c# ×4
.net ×2
asp.net ×1
bitmapimage ×1
blocking ×1
casting ×1
data-url ×1
debugging ×1
enums ×1
geolocation ×1
html ×1
html5 ×1
icomparable ×1
iequatable ×1
image ×1
imagesource ×1
immutability ×1
jboss7.x ×1
linux ×1
sealed ×1
theory ×1
ubuntu ×1
ubuntu-10.04 ×1
video ×1
wcf ×1
wpf ×1