小编Sco*_*man的帖子

如何检测安装的.NET Framework版本和Service Pack?

这里提出类似的问题,但它是针对.NET 3.5的.具体来说,我正在寻找以下内容:

  1. 确定安装哪些.NET Framework版本和Service Pack的正确方法是什么?
  2. 是否有可以使用的注册表项列表?
  3. Framework版本之间是否存在任何依赖关系?

.net installation version-detection

286
推荐指数
8
解决办法
32万
查看次数

由于.NET有垃圾收集器,为什么我们需要终结器/析构函数/ dispose-pattern?

如果我理解正确,.net运行时将始终在我之后清理.因此,如果我创建新对象并停止在我的代码中引用它们,运行时将清理这些对象并释放它们占用的内存.

既然这就是为什么一些对象需要有一个析构函数或dispose方法呢?当它们不再被引用时,运行时不会清理它们吗?

.net c# memory garbage-collection memory-management

67
推荐指数
4
解决办法
8894
查看次数

我们是否应该始终在类中包含默认构造函数?

我被同事问过这个问题,我们是否应该在类中包含默认构造函数?如果是这样,为什么?如果不是,为什么不呢?

public class Foo {

    Foo() { }

    Foo(int x, int y) {
        ...
    } 

}
Run Code Online (Sandbox Code Playgroud)

我也有兴趣从专家那里了解一下.

.net c# clr default-constructor

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

C#中的大整数

目前我正在借用java.math.BigInteger这里描述的J#库.从来没有使用过库来处理大整数,这看起来很慢,大约慢了10倍,即使对于ulong长度数也是如此.有没有人有更好的(最好是免费的)库,或者这种性能水平是否正常?

c# j# largenumber biginteger

64
推荐指数
3
解决办法
6万
查看次数

何时使用SortedList <TKey,TValue>而不是SortedDictionary <TKey,TValue>?

这似乎与这个问题重复,后者询问" SortedListSortedDictionary之间有什么区别?" 不幸的是,答案只是引用MSDN文档(它清楚地表明两者之间存在性能和内存使用差异),但实际上并没有回答这个问题.

事实上(根据MSDN,这个问题没有得到相同的答案):

SortedList<TKey, TValue>通用类是O(log n)的检索,其中n是字典中的元件的数目的二进制搜索树.在这里,它类似于 SortedDictionary<TKey, TValue>泛型类.这两个类具有相似的对象模型,并且都具有O(log n)检索.两个类别的不同之处在于内存使用和插入和移除速度:

  • SortedList<TKey, TValue>使用的内存少于SortedDictionary<TKey, TValue>.

  • SortedDictionary<TKey, TValue>对于未排序的数据,O(log n)具有更快的插入和删除操作,而不是O(n) SortedList<TKey, TValue>.

  • 如果列表是从排序数据中一次性填充的,SortedList<TKey, TValue>则速度快于 SortedDictionary<TKey, TValue>.

所以,显然这表明这SortedList<TKey, TValue>是更好的选择,除非您需要更快的插入和删除未排序数据的操作.

问题仍然存在,鉴于以上信息,使用a的实际(现实世界,商业案例等)原因是SortedDictionary<TKey, TValue>什么?根据绩效信息,这意味着根本没有必要SortedDictionary<TKey, TValue>.

.net c# sortedlist sorteddictionary

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

.NET Framework,CLR和Visual Studio版本号如何相互关联?

随着最近发布的.NET 4.0和Visual Studio 2010,跟踪哪些.NET Framework版本构建在什么版本的CLR上并且属于Visual Studio的哪个版本变得越来越困难.

是否有显示这些关系的权威表格?

.net clr versions visual-studio

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

WCF中的DataContract有什么意义?

VS.net在您创建WCF项目时创建模板.

它为iService1.cs文件添加了一个类:

// Use a data contract as illustrated in the sample below to
// add composite types to service operations.
[DataContract]
public class CompositeType
{
    bool boolValue = true;
    string stringValue = "Hello ";

    [DataMember]
    public bool BoolValue
    {
        get { return boolValue; }
        set { boolValue = value; }
    }

    [DataMember]
    public string StringValue
    {
        get { return stringValue; }
        set { stringValue = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

由于WCF服务可以返回任何用户定义的类,为什么要使用DataContract和CompositeType类?

我可以返回类似的东西:

 [OperationContract]
MyUserCollection GetUsers();
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

wcf

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

它是否有助于GC在Java中使null变为null

myLocalVar = null;在离开方法之前,我被"强制"在finally子句中添加语句.原因是帮助GC.有人告诉我,下次服务器崩溃时我会收到短信,所以我最好这样做:-).

我认为这是毫无意义的,因为myLocalVar的范围是方法,并且一旦方法退出就会"丢失".额外的归零只会污染代码,否则无害.

我的问题是,这个关于帮助GC的神话来自哪里?(我被称为"Java记忆书")你知道"权威"的任何文章更深入地解释它吗?有可能这不是一个神话,但真的有所帮助吗?如果是这样,怎么样?可能会使局部变量归零会造成任何伤害?

为了澄清,方法看起来像这样:

void method() {
  MyClass myLocalVar = null;
  try {
    myLocalVar = get reference to object;
    ... do more here ...
  } finally {
    if (myLocalVar != null) {
      myLocalVar.close(); // it is resource which we should close
    }

    myLocalVar = null; // THIS IS THE LINE I AM TALKING ABOUT
  }
}
Run Code Online (Sandbox Code Playgroud)

java variables null garbage-collection local

40
推荐指数
6
解决办法
9773
查看次数

C#中的"按合同设计"

我想在我最新的C#应用​​程序中通过契约尝试一点设计,并希望语法类似于:

public string Foo()
{
    set {
        Assert.IsNotNull(value);
        Assert.IsTrue(value.Contains("bar"));
        _foo = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以从单元测试框架中获取这样的静态方法,但是我想知道这样的东西是否已经内置于该语言中,或者是否已经存在某种类型的框架.我可以编写自己的Assert函数,只是不想重新发明轮子.

c# design-by-contract

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

你试着让你的代码看起来漂亮吗?

我可能是一个肛门程序员,但我喜欢从远处看起来很好的代码.我发现自己排队了一个CSS样式,而不是这样:

#divPreview {
    text-align: center;
    vertical-align: middle;
    border: #779 1px solid;
    overflow: auto;
    width: 210px;
    height: 128px;
    background-color: #fff"
}
Run Code Online (Sandbox Code Playgroud)

它现在看起来像:

#divPreview {
    width: 210px;
    height: 128px;
    overflow: auto;
    text-align: center;
    vertical-align: middle;
    border: #779 1px solid;
    background-color: #fff";
}
Run Code Online (Sandbox Code Playgroud)

我几乎总是按照大小的顺序写数字比较

if (0 < n && n < 10)
Run Code Online (Sandbox Code Playgroud)

代替

if (0 < n && 10 > n)
Run Code Online (Sandbox Code Playgroud)

最后我倾向于安排if-then-else代码,以便THEN部分小于ELSE部分(导致较重的东西到底部,对吧?)

if (afflicted == true) {
  GetSome();
  HelpRight();
}
else {
  NowPlease();
}
Run Code Online (Sandbox Code Playgroud)

啊!

if (afflicted == false) {
  HowMuchTrouble();
}
else …
Run Code Online (Sandbox Code Playgroud)

30
推荐指数
7
解决办法
7578
查看次数