Tag: null

当源DataTable行具有DBNull.Value时,SqlBulkCopy进入表,默认列值失败

更新: 这是我的解决方案 我有一个表定义为: CREATE TABLE [dbo].[csvrf_References] ( [Ident] [int] IDENTITY(1,1) NOT NULL, [ReferenceID] [uniqueidentifier] NOT NULL DEFAULT (newsequentialid()), [Type] [nvarchar](255) NOT NULL, [Location] [nvarchar](1000) NULL, [Description] [nvarchar](2000) NULL, [CreatedOn] [datetime] NOT NULL DEFAULT (getdate()), [LastUpdatedOn] [datetime] NOT NULL DEFAULT (getdate()), [LastUpdatedUser] [nvarchar](100) NOT NULL DEFAULT (suser_sname()), CONSTRAINT [PK_References] PRIMARY KEY NONCLUSTERED ([ReferenceID] ASC) ) ON […]

清除私人collections或将其设为空?

我有一个可变类,里面有一个私有的List字段。 在我的类的Reset()方法中,我应该使用其Clear()方法Clear()列表还是仅为其字段分配一个新列表? 请注意,该列表不是公共的,仅供类本身使用。 因此,分配新列表应该使旧的列表无法访问。 由于Clear()方法是一个O(n)操作 ,我想知道只是在它上面分配一个新列表的缺点是什么。

有没有办法在VB.NET中知道是否为事件注册了处理程序?

在C#中,我可以测试一下…… public event EventHandler Trigger; protected void OnTrigger(EventArgs e) { if (Trigger != null) Trigger(this, e); } 有没有办法在VB.NET中执行此操作? 测试null我的意思是? 更多信息 我忘了提。 我有用C#编写的类,但我在VB.NET中编写unit testing。 我在unit testing中尝试这个… If myObject.Trigger IsNot Nothing Then ”#do something End If 这导致编译时错误,该错误表示……“公共事件触发器是一个事件,无法直接调用。使用RaiseEvent语句引发事件。” 赛斯

检查null的性能损失

任何人都可以告诉我在c#中检查对象的对象或属性是否为null的性能成本是多少? 我正在开发一个ASP.NET MVC应用程序,在模型中进行空检查,然后在视图中再次完成。 我觉得这是过度的但是如果没有真正的性能打击那么我就不会看到以这种方式做事的伤害。

当VirtualizingStackPanel.IsVirtualizing =“False”时,ItemContainerGenerator.ContainerFromItem()返回null

我在这个问题上面临着类似的问题,但VirtualizingStackPanel.IsVirtualizing=”False”并没有解决我的问题。 有没有人面临同样的问题? 问题是我有一个自定义combobox, 然而我无法获得对via内部复选框的引用, this.ItemContainerGenerator.ContainerFromItem(this.Items[0]) as ComboBoxItem; 有什么建议吗? 我真正想要实现的是, 我想更改checkboxes ischecked属性,这取决于可以在运行时更改的其他对象。 我不能使用绑定,因为整个项目的当前状态,此时我无法改变。 所以基本上一旦创建了新的MultiSelectionComboBox,我想做这样的事情, foreach (object item in this.Items) { ComboBoxItem comboBoxItem = this.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem; if (comboBoxItem == null) continue; FrameworkElement element = comboBoxItem.ContentTemplate.LoadContent() as FrameworkElement; CheckBox checkBox = element.FindName(“CheckBoxItem”) as CheckBox; checkBox.IsChecked = this.SelectedItem.Contains(item); }

使用“is”关键字和“null”关键字c#7.0

最近我发现,以下代码在VS2017中编译并按预期工作。 但我找不到任何关于此的主题/文档。 所以我很好奇使用这种语法是否合法: class Program { static void Main(string[] args) { var o = new object(); Console.WriteLine(o is null); o = null; Console.WriteLine(o is null); Console.ReadLine(); } } 顺便说一句,这在VS2015中无效

为什么在与null比较时转换为对象?

在浏览有关Equals覆盖的MSDN文档时,有一点引起了我的注意。 在此特定页面的示例中,进行了一些空检查,并在进行比较时将对象转换为System.Object类型: public override bool Equals(System.Object obj) { // If parameter is null return false. if (obj == null) { return false; } // If parameter cannot be cast to Point return false. TwoDPoint p = obj as TwoDPoint; if ((System.Object)p == null) { return false; } // Return true if the fields match: return […]

.Net如何将Nullables设置为Null

Nullable类型被定义为struct 。 在.Net中,您不能将null赋给struct因为structs是不能用null表示的值类型( Nullable除外)。 int i = null; // won’t compile – we all know this int? i = null; // will compile, and I’m glad it does, and it should compile, but why? Nullable如何成为规则的例外“你不能为值赋值null ?” Nullable的反编译代码没有提供关于如何发生这种情况的见解。

为什么当我插入DateTime null时我在SQL Server中有“0001-01-01”?

我尝试在我的数据库中为字段类型’date’插入值null(DateTime),但我总是得到‘0001-01-01’ 。 我不明白,这个字段“允许空值”,我不知道为什么我有这个默认值。 我正在使用C#asp .net和MVC(entity framework),这是我的代码: Budget_Synthesis newBS = new Budget_Synthesis { Budget_Code = newBudgetCode, Last_Modified_Date = null }; db.Budget_Synthesis.AddObject(newBS); Last_Modified_Date是否输入System.DateTime? 所以我不知道为什么他们改变这个’null’。 如果我尝试在我的应用程序上显示该值,我会得到01/01/0001 00:00:00 和0001-01-01与SSMS 有人可以解释为什么我不能得到一个真正的’NULL’? 最好的祝福

在null之前转换为对象检查覆盖等于

在这里阅读关于覆盖相等运算符的msdn文章 以下片段让我感到困惑…… // If parameter cannot be cast to Point return false. TwoDPoint p = obj as TwoDPoint; if ((System.Object)p == null) // <– wtf? { return false; } 为什么在这里有一个转换为Object来执行null比较?