问题列表 - 第48311页

C#对象比较

有人可以指出重载的想法operator==来执行深度对象比较(而不是参考比较).

来自MSDN:

默认情况下,operator ==通过确定两个引用是否指示同一对象来测试引用相等性.因此,引用类型不必实现operator ==以获得此功能.当一个类型是不可变的,也就是说,实例中包含的数据不能改变时,重载operator ==来比较值的相等而不是引用相等可能是有用的,因为作为不可变对象,它们可以被认为是相同的因为它们具有相同的价值.在非不可变类型中覆盖operator ==不是一个好主意.

什么时候才真正受益?

并且,如果每个对象都有方法Equals,这使得值比较成为可能,为什么有人会使用语句执行 (而不是引用)比较x == y

我想我不明白,因为这对我来说很奇怪.

c# comparison equality

2
推荐指数
1
解决办法
2895
查看次数

多个用户可以共享HttpApplication实例吗?

我已经使用本文顶部的表格作为参考.我有三个问题:

1 - 多个用户(来自不同的物理位置)是否可以共享HttpApplication实例?如果是这样,默认会发生这种情况吗?

2 - 多个用户(来自不同的物理位置)是否可以共享HttpApplicationState实例?如果是这样,默认会发生这种情况吗?

3 - ASP.NET应用程序的多个用户是否可以共享单个实例或静态变量值?如果是这样,默认会发生这种情况吗?

谢谢你清理这个.

asp.net lifecycle httpapplication httpapplicationstate

2
推荐指数
1
解决办法
1672
查看次数

DLR的内存占用量是多少?

我正在考虑限制使用C#的dynamic关键字.我的初始时间试验令人惊讶 - 100,000次迭代的性能下降不到一秒(可能是由于DLR缓存).

但是,我无法访问内存分析器,Eric Lippert写道:

然后它启动DLR [...] DLR然后启动一个特殊版本的C#编译器......

这是什么内存占用,并在动态代码被垃圾收集时卸载?

c# memory dynamic-language-runtime dynamic c#-4.0

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

python类设计(staticmethod vs方法)

对于不需要任何传递信息(对象实例或类)的方法,更好的方法是什么,因为例如它们只是进行简单的转换.@staticmethod还是方法

class Foo(object):
    def __init__(self, trees):
        self.money = Foo.trees2money(trees)

    @staticmethod
    def trees2money(trees):
        return trees * 1.337

class Quu(object):
    def __init__(self, trees):
        self.money = self.trees2money(trees)

    def trees2money(self, trees):
        return trees * 1.337
Run Code Online (Sandbox Code Playgroud)

python oop static-methods

7
推荐指数
1
解决办法
2787
查看次数

从不调用XmlSerializer中的重写反序列化

我慢慢地感觉到我的理智在边缘磨损,而我的思绪慢慢消失.

我想扩展XmlSerializer,由于某种原因它不支持反序列化通知.

我有以下代码:

public class NotificationXmlSerializer : XmlSerializer
{
    public NotificationXmlSerializer(Type type)
        : base(type)
    { 
    }

    protected override object Deserialize(XmlSerializationReader reader)
    {
        var x = base.Deserialize(reader);
        var methods = x.GetType().GetMethods().Where(method => method.GetCustomAttributes(true).Any(attr => attr is OnDeserializedAttribute));

        return x;
    }
}
Run Code Online (Sandbox Code Playgroud)

并以这种方式使用它:

    using (MemoryStream fs = new MemoryStream())
    {
        var x = new NotificationXmlSerializer(typeof(int));
        x.Serialize(fs, 5);
        fs.Seek(0, SeekOrigin.Begin);
        var y = x.Deserialize(fs);
    }
Run Code Online (Sandbox Code Playgroud)

但是,如果我在我的Deserialize覆盖中放置一个断点,它永远不会被击中!即使我故意在那里抛出异常,程序功能也是正常的,所以我相信它永远不会被击中.

为什么他们会让我覆盖一个内部方法Deserialize而不会让我影响它的任何东西?

我究竟做错了什么?

最好的问候,马克斯

c# extend xmlserializer

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

如何根据Map中的Integer值相对于O(n)时间内的其他值随机选择一个键?

如果我们有一个Map<T, Integer>,假设整数值代表"有多少"Ts.因此,我想根据其Integer值统一选择T. 如果地图包含"a"= 4且"b"= 6的字符串,那么我想要它,以便选择40%的时间"a"并选择60%的时间"b".

最重要的是,我在O(n)中喜欢这个,在我之前的例子中,n是两个(不是十个).我最初创建了一个包含键的ArrayList,它包含了多少个值(并且只返回任何随机索引),但是这个过程不仅非常慢,而且对于Map<T, Integer>代表的内容完全违反直觉.

java random map uniform

6
推荐指数
2
解决办法
1912
查看次数


Scala和C++特征之间的关系是什么?

Traits是Scala和C++中使用的概念(尽管在C++中它更像是一种成语而不是集成到语言中的概念).对我而言,这些概念是如何相关的并不明显.Scala和C++特性之间有什么关系?

c++ scala

6
推荐指数
1
解决办法
498
查看次数

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

将两个lat和LNG转换为"8英里远"的字符串

我似乎无法将两个lat和LNG转换为字符串.当我转换为度数并回到一个字符串时,我得到像999737这样的大数字,应该是2英里或更少的距离.

好的有效!

iphone objective-c latitude-longitude

0
推荐指数
1
解决办法
348
查看次数