小编Dav*_*rab的帖子

为什么在重写Equals方法时重写GetHashCode很重要?

鉴于以下课程

public class Foo
{
    public int FooId { get; set; }
    public string FooName { get; set; }

    public override bool Equals(object obj)
    {
        Foo fooItem = obj as Foo;

        if (fooItem == null) 
        {
           return false;
        }

        return fooItem.FooId == this.FooId;
    }

    public override int GetHashCode()
    {
        // Which is preferred?

        return base.GetHashCode();

        //return this.FooId.GetHashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经覆盖了该Equals方法,因为它Foo代表了Foos表的一行.哪个是覆盖的首选方法GetHashCode

覆盖为什么重要GetHashCode

c# overriding hashcode

1371
推荐指数
13
解决办法
35万
查看次数

GUID是100%独一无二的吗?

GUID是100%独一无二的吗?

它会在多个线程中保持独特吗?

language-agnostic guid

490
推荐指数
15
解决办法
16万
查看次数

是DateTime.Now是测量函数性能的最佳方法吗?

我需要找到一个瓶颈,并且需要准确地测量时间.

以下代码段是衡量性能的最佳方法吗?

DateTime startTime = DateTime.Now;

// Some execution process

DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);
Run Code Online (Sandbox Code Playgroud)

.net c# performance datetime timer

466
推荐指数
14
解决办法
6万
查看次数

找到一个有反射的私人领域?

鉴于这门课程

class Foo
{
    // Want to find _bar with reflection
    [SomeAttribute]
    private string _bar;

    public string BigBar
    {
        get { return this._bar; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想找到我将用属性标记的私有项_bar.那可能吗?

我已经用我寻找属性的属性做了这个,但从来没有私有成员字段.

获取私有字段需要设置哪些绑定标志?

.net c# reflection .net-attributes

219
推荐指数
8
解决办法
15万
查看次数

当collection为null时,为什么.NET foreach循环抛出NullRefException?

所以我经常遇到这种情况... Do.Something(...)返回一个null集合,如下所示:

int[] returnArray = Do.Something(...);
Run Code Online (Sandbox Code Playgroud)

然后,我试着像这样使用这个集合:

foreach (int i in returnArray)
{
    // do some more stuff
}
Run Code Online (Sandbox Code Playgroud)

我只是好奇,为什么foreach循环不能对null集合进行操作?对我来说似乎合乎逻辑的是,0迭代将使用null集合执行...而是抛出一个NullReferenceException.任何人都知道为什么会这样?

这很烦人,因为我正在处理那些不确定它们返回的API,所以我最终if (someCollection != null)到处都是......

编辑:谢谢大家解释foreach使用GetEnumerator,如果没有枚举器,foreach会失败.我想我问为什么语言/运行时在抓取枚举器之前不能或不会进行空检查.在我看来,这种行为仍然会得到很好的定义.

.net c#

218
推荐指数
7
解决办法
11万
查看次数

SQL Server 2005如何创建唯一约束?

如何在SQL Server 2005中的现有表上创建唯一约束?

我正在寻找TSQL以及如何在数据库图表中完成它.

sql sql-server constraints

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

如何INSERT到从另一个表中提取的表记录

我正在尝试编写一个查询,从表中提取和转换数据,然后将这些数据插入另一个表.是的,这是一个数据仓库查询,我在MS Access中这样做.所以基本上我想要一些像这样的查询:

INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES
  (SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1);
Run Code Online (Sandbox Code Playgroud)

我试过但得到语法错误消息.

如果你想这样做,你会怎么做?

sql ms-access

174
推荐指数
5
解决办法
64万
查看次数

MySQL中varchar(max)的等价物?

MySQL中varchar(max)的等价物是什么?

mysql varchar

161
推荐指数
4
解决办法
19万
查看次数

如何比较C#中的标志?

我下面有一个标志枚举.

[Flags]
public enum FlagTest
{
    None = 0x0,
    Flag1 = 0x1,
    Flag2 = 0x2,
    Flag3 = 0x4
}
Run Code Online (Sandbox Code Playgroud)

我无法将if语句评估为true.

FlagTest testItem = FlagTest.Flag1 | FlagTest.Flag2;

if (testItem == FlagTest.Flag1)
{
    // Do something,
    // however This is never true.
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

.net c# enums flags attributes

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

序列不包含任何元素?

我目前在两个地方使用单个查询从数据库中获取一行.

BlogPost post = (from p in dc.BlogPosts
                 where p.BlogPostID == ID
                 select p).Single();
Run Code Online (Sandbox Code Playgroud)

检索行以将数据放入文本框时查询很好,但是当用于检索行以编辑行并将其重新放回数据库时,它会返回错误"Sequence contains no elements".我无法理解为什么它可能在一个实例中找到合适的行而不是另一个实例.

(使用ASP.NET MVC和LINQ)

c# linq

121
推荐指数
7
解决办法
25万
查看次数