我最近正在处理一个DateTime对象,并写了这样的东西:

DateTime dt = DateTime.Now;
dt.AddDays(1);
return dt; // still today's date! WTF?

intellisense文档中的AddDays()表示它在日期上加了一天,但实际上它没有——它实际上是一个加了一天的日期,所以你必须这样写:

DateTime dt = DateTime.Now;
dt = dt.AddDays(1);
return dt; // tomorrow's date

这只狗以前咬过我好几次,所以我想把最坏的C#gotchas分类会很有用.

推荐答案

private int myVar;
public int MyVar
{
    get { return MyVar; }
}

该死.你的应用程序崩溃,没有堆栈跟踪.这种事经常发生.

(请注意getter中的大写MyVar而不是小写myVar.)

.net相关问答推荐

在`MAUI`应用中使用Android`MediaPlayer`的`prepare`方法只在发布模式下和在物理设备上崩溃

在数据网格中:如何在更改单元格 A 中的值后显示单元格 B 中的更改

在 Invoke() 中运行时,跨线程操作对表单控件无效 - .NET

Ubuntu 22.04 + JetBrains Rider 不能做脚手架 dbContext

使用 Powershell TOM 在 SSAS 表格中创建分区

为什么这个同步运行的异步睡眠会挂起?

为什么 .NET 内部 Hashtable 中有一个 Thread.Sleep(1)?

使用 Windows 服务和 C# 检测 USB 驱动器插入和移除

为什么 WCF 中不允许方法重载?

如何比较 C# 中的(目录)路径?

寻找 .NET 的命令行参数解析器

Iif 在 C# 中等效

如何在多个解决方案之间共享相同的 Resharper 设置,无需人工干预?

将两个列表映射到 C# 中的字典中

List 是否保证项目将按照添加的顺序返回?

确定使用 ContextMenuStrip 的控件

如何使用 NPOI 读取文件

实体框架太慢了.我有哪些 Select ?

我可以为 Dictionary 条目使用集合初始化程序吗?

多行 C# 插值字符串文字