小编cas*_*One的帖子

IEquatable <T>,IComparable <T>应该在非密封类上实现吗?

任何人对是否有任何意见IEquatable<T>IComparable<T>一般应要求Tsealed(如果是class)?

这个问题发生在我身上,因为我正在编写一组旨在帮助实现不可变类的基类.基类要提供的部分功能是自动实现相等比较(使用类的字段以及可应用于字段来控制相等比较的属性).当我完成时它应该是相当不错的 - 我正在使用表达式树为每个动态创建一个编译的比较函数T,因此比较函数应该非常接近正则相等比较函数的性能.(我使用键入的不可变字典System.Type和双重检查锁定以合理的方式存储生成的比较函数)

尽管如此,有一件事是用来检查成员字段相等性的函数.我的初衷是检查每个成员字段的类型(我将调用X)是否实现IEquatable<X>.但是,经过一番思考后,除非X是这样,否则我认为这是不安全的sealed.原因在于,如果X不是sealed,我无法确定是否X正确地将等式检查委托给虚拟方法X,从而允许子类型覆盖相等比较.

这就提出了一个更普遍的问题 - 如果一个类型没有被密封,它是否应该真正实现这些接口?我想不会,因为我认为接口契约是比较两种X类型,而不是两种类型,可能是也可能不是X(虽然它们当然必须是X或者是子类型).

你们有什么感想?应该IEquatable<T>IComparable<T>避免对开封类?(也让我想知道是否有一个fxcop规则)

我现在的想法是让我产生比较功能只能用IEquatable<T>在成员字段,其Tsealed,而是用虚拟的Object.Equals(Object obj),如果T是密封的,即使T工具IEquatable<T>,因为该领域可能的潜在店亚型T和我怀疑的大多数实现IEquatable<T>适当设计的传承.

c# icomparable immutability sealed iequatable

36
推荐指数
2
解决办法
4313
查看次数

使用WCF实施低延迟实时财务数据馈送的最佳做法?

我有一个.NET服务需要向其客户提供实时财务数据.此Feed的输出速率可能会变得很快,我正在寻找最佳架构来实现这种低延迟和高性能的服务.

我正在考虑使用某种流数据提供程序,一种用于音频或视频,但发送Feed更新.

会对这个主题或任何现实世界的例子表示感谢

更新:

我不必使用WCF,这只是我的第一种方法,因为它是当前的技术.欢迎使用C#中的任何其他实现.

.net c# wcf

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

在Linux上启动JBoss 7作为服务

以前的JBoss版本包含一个脚本(如jboss_init_redhat.sh),可以复制到/etc/init.d以便将其添加为服务 - 因此它将在启动时启动.我似乎无法在JBoss 7中找到任何类似的脚本.有没有人已经做过这样的事情?

PS我试图在Ubuntu 10.04中实现这一点

linux ubuntu ubuntu-10.04 start-stop-daemon jboss7.x

36
推荐指数
2
解决办法
7万
查看次数

如何防止从我的网站下载图像和视频文件?

如何防止从我的网站下载图像和视频文件?可能吗?最好的方法是什么?

html video image blocking

35
推荐指数
10
解决办法
8万
查看次数

在C#中将内容转换为枚举

在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在编译时已知该值,则会更好.如果没有,运行时应该在赋值语句中抛出异常.

你怎么看?这有什么原因吗?

(注意:这是我在很久以前在我的博客上发布的一个问题,但没有得到任何信息回复.)

c# enums casting

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

来自IP地址的经度和纬度值

是否有可能从asp.net中的IP地址获取经度和纬度值?如果有可能,请告诉我如何才能得到这个.

asp.net geolocation latitude-longitude

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

BitmapImage到byte []

我有一个BitmapImage我在WPF应用程序中使用的,后来我想将它作为字节数组保存到数据库中(我猜这是最好的方法),我该如何执行这种转换?

或者,是否有更好的方法将BitmapImage(或其任何基类,BitmapSourceImageSource)保存到数据存储库?

.net c# wpf bitmapimage imagesource

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

Visual Studio .NET调试器的"隐藏的秘密"?

尽管我一般不喜欢关于SO的讨论/主观帖子,但我真的很欣赏人们放在一起的"隐藏的秘密"帖子.它们提供了一些您可能现在可能发现的常见错过的工具的概述.

对于这个问题,我想探索Visual Studio .NET调试器.你经常使用或最近发现的VS.NET调试器中有哪些"隐藏的秘密",希望你早就知道?

debugging visual-studio

34
推荐指数
11
解决办法
6006
查看次数

我从哪里开始学习图像处理和对象识别?

我有兴趣编写一些基本的计算机化对象识别应用程序,所以我想我需要一些图像处理算法的理论背景,以及一些用于决策能力的AI.

我是计算机科学专业的毕业生,有一天我打算获得硕士学位,希望能够进入这些领域.与此同时,我想先行一步,做一些自学.

所以我的问题是,我从哪里开始?我很欣赏正确方向的箭头,如果可能的话,还有一些链接.

theory image-processing computer-vision object-recognition

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

是否可以在视频和音频标签中使用数据URI?

假设如下:

  1. 有问题的浏览器不限制数据URI的大小.
  2. 实际上有这样做的目的(所以请不要问"有什么意义?"和"你确实认识到base64编码会将你的文件扩展33%,对吧?").

技术上可以将整个视频或音频文件编码到base64中,并使用<audio>或<video>将其嵌入到HTML文档中吗?

html5 data-url

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