鉴于以下课程
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?
我需要找到一个瓶颈,并且需要准确地测量时间.
以下代码段是衡量性能的最佳方法吗?
DateTime startTime = DateTime.Now;
// Some execution process
DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);
Run Code Online (Sandbox Code Playgroud) 鉴于这门课程
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.那可能吗?
我已经用我寻找属性的属性做了这个,但从来没有私有成员字段.
获取私有字段需要设置哪些绑定标志?
所以我经常遇到这种情况... 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会失败.我想我问为什么语言/运行时在抓取枚举器之前不能或不会进行空检查.在我看来,这种行为仍然会得到很好的定义.
如何在SQL Server 2005中的现有表上创建唯一约束?
我正在寻找TSQL以及如何在数据库图表中完成它.
我正在尝试编写一个查询,从表中提取和转换数据,然后将这些数据插入另一个表.是的,这是一个数据仓库查询,我在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)
我试过但得到语法错误消息.
如果你想这样做,你会怎么做?
我下面有一个标志枚举.
[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)
我怎样才能做到这一点?
我目前在两个地方使用单个查询从数据库中获取一行.
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# ×6
.net ×4
sql ×2
attributes ×1
constraints ×1
datetime ×1
enums ×1
flags ×1
guid ×1
hashcode ×1
linq ×1
ms-access ×1
mysql ×1
overriding ×1
performance ×1
reflection ×1
sql-server ×1
timer ×1
varchar ×1