Questions tagged «nullable»

可为空的标记用于与可为空的成员或类型有关的问题。空值用于表示缺失或未知值。

3
为什么不递增Nullable <int>会引发异常?
您能解释一下,为什么Console.WriteLine写空行(Console.WriteLine(null)给我编译错误),为什么没有NullReferenceException(甚至a+=1不应该引发它)? int? a = null; a++; // Why there is not NullReferenceException? Console.WriteLine(a); // Empty line
98 c#  .net  nullable 

19
C#优雅的方法来检查属性的属性是否为null
在C#中,假设在此示例中要从PropertyC中提取一个值,并且ObjectA,PropertyA和PropertyB都可以为null。 ObjectA.PropertyA.PropertyB.PropertyC 如何以最少的代码安全地获取PropertyC? 现在,我将检查: if(ObjectA != null &amp;&amp; ObjectA.PropertyA !=null &amp;&amp; ObjectA.PropertyA.PropertyB != null) { // safely pull off the value int value = objectA.PropertyA.PropertyB.PropertyC; } 最好做类似这样的事情(伪代码)。 int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal; 可能甚至会因为使用空伙伴运算符而崩溃。 编辑最初,我说我的第二个示例就像js,但是我将其更改为psuedo代码,因为正确地指出了它在js中不起作用。

19
可空布尔值的复选框
我的模型有一个布尔值,必须为空 public bool? Foo { get; set; } 所以在我的剃刀cshtml中 @Html.CheckBoxFor(m =&gt; m.Foo) 除了那行不通。也不会使用(bool)对其进行强制转换。如果我做 @Html.CheckBoxFor(m =&gt; m.Foo.Value) 不会产生错误,但是在发布且foo设置为null时不会绑定到我的模型。在页面上显示Foo并将其绑定到帖子上的模型的最佳方法是什么?

7
“ int”和“ int”有什么区别?和C#中的“ int”?
我有90%的把握确定我以前在stackoverflow上看到过这个答案,实际上我从未见过“ int?”。语法在这里看到之前,但无论如何搜索,我都找不到上一篇文章,这使我发疯。 我可能是偶然地吃了有趣的蘑菇,但是如果我没有吃,那么有人可以指出或重新解释它吗?我的stackoverflow search-fu显然太低了。
84 c#  syntax  types  nullable 

3
做短路操作员|| 和&&是否存在可为空的布尔值?RuntimeBinder有时会这样认为
我阅读了有关条件逻辑运算符 ||和的C#语言规范&amp;&amp;,也称为短路逻辑运算符。对我来说,似乎还不清楚这些是否存在可空布尔值,即操作数类型Nullable&lt;bool&gt;(也写为bool?),因此我尝试使用非动态类型: bool a = true; bool? b = null; bool? xxxx = b || a; // compile-time error, || can't be applied to these types 这似乎解决了这个问题(我无法清楚地理解规范,但是现在我知道,假设Visual C#编译器的实现是正确的)。 但是,我也想尝试dynamic绑定。所以我尝试这样做: static class Program { static dynamic A { get { Console.WriteLine("'A' evaluated"); return true; } } static dynamic B { get …

3
如何使视图列NOT NULL
我正在尝试创建一个我只希望列为true或false的视图。但是,无论我做什么,SQL Server(2008)似乎都认为我的bit列可以以某种方式为null。 我有一个名为“产品”的表,其“状态”列为INT, NULL。在视图中,我想为Product中的每一行返回一行,如果Product.Status列等于3,则BIT列设置为true,否则位字段应该为false。 示例SQL SELECT CAST( CASE ISNULL(Status, 0) WHEN 3 THEN 1 ELSE 0 END AS bit) AS HasStatus FROM dbo.Product 如果我将此查询另存为视图并查看“对象资源管理器”中的列,则HasStatus列设置为BIT, NULL。但是它永远不能为NULL。是否有一些魔术SQL技巧可以用来强制使该列成为NOT NULL。 请注意,如果删除CAST()周围的CASE,则该列正确设置为NOT NULL,但是该列的类型设置为INT,这不是我想要的。我希望如此BIT。:-)

6
通过反射查找可为空的属性的类型
我通过反射检查对象的属性,然后继续处理每个属性的数据类型。这是我的(精简版)资源: private void ExamineObject(object o) { Type type = default(Type); Type propertyType = default(Type); PropertyInfo[] propertyInfo = null; type = o.GetType(); propertyInfo = type.GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); // Loop over all properties for (int propertyInfoIndex = 0; propertyInfoIndex &lt;= propertyInfo.Length - 1; propertyInfoIndex++) { propertyType = propertyInfo[propertyInfoIndex].PropertyType; …
83 c#  .net  reflection  nullable 


3
从'System.Int32'到'System.Nullable`1 [[System.Int32,mscorlib]]的无效转换
Type t = typeof(int?); //will get this dynamically object val = 5; //will get this dynamically object nVal = Convert.ChangeType(val, t);//getting exception here 我在上面的代码中收到InvalidCastException。对于上述内容,我可以简单地编写int? nVal = val,但是以上代码是动态执行的。 我正在将一个值(非空类型,如int,float等)包装在一个对象(在此为val)中,并且我必须通过将其强制转换为另一个类型(可以为空的版本,也可以为不能为空的版本)来将其保存到另一个对象的)。什么时候 从'System.Int32'到'System.Nullable`1 [[System.Int32,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]的无效转换。 一个int,应该是可转换/类型可转换的nullable int,这是什么问题?

8
为什么不能检查“ DateTime”是否为“ Nothing”?
在VB.NET中,是否可以将DateTime变量设置为“未设置”?为什么可以将a设置DateTime为Nothing,但不能检查是否为a Nothing?例如: Dim d As DateTime = Nothing Dim boolNotSet As Boolean = d Is Nothing 第二条语句抛出此错误: 'Is' operator does not accept operands of type 'Date'. Operands must be reference or nullable types.

8
为什么当==返回null时,> =返回false?
我有两个类型为int的变量?(或者,如果可以,则为Nullable &lt;int&gt;)。我想对两个变量进行大于或等于(&gt; =)比较,但事实证明,如果两个变量均为null,则返回false,而显然==运算符返回true。 有人可以向我解释为什么这很逻辑,因为&gt; =运算符的语义定义包含单词“或”吗?


5
.NET-将通用集合转换为数据表
我正在尝试将通用集合(列表)转换为DataTable。我发现以下代码可以帮助我做到这一点: // Sorry about indentation public class CollectionHelper { private CollectionHelper() { } // this is the method I have been using public static DataTable ConvertTo&lt;T&gt;(IList&lt;T&gt; list) { DataTable table = CreateTable&lt;T&gt;(); Type entityType = typeof(T); PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entityType); foreach (T item in list) { DataRow row = table.NewRow(); …

5
使用XmlSerializer将空的xml属性值反序列化为可为null的int属性
我从第三方获得了xml,我需要将其反序列化为C#对象。此xml可能包含具有整数类型值或空值的属性:attr =” 11”或attr =””。我想将此属性值反序列化为具有可空整数类型的属性。但是XmlSerializer不支持反序列化为可空类型。在使用InvalidOperationException {“发生错误,反映类型'TestConsoleApplication.SerializeMe'。”}的XmlSerializer创建期间,以下测试代码失败。 [XmlRoot("root")] public class SerializeMe { [XmlElement("element")] public Element Element { get; set; } } public class Element { [XmlAttribute("attr")] public int? Value { get; set; } } class Program { static void Main(string[] args) { string xml = "&lt;root&gt;&lt;element attr=''&gt;valE&lt;/element&gt;&lt;/root&gt;"; var deserializer = new XmlSerializer(typeof(SerializeMe)); …

7
Java检查布尔值是否为空
如何检查布尔值是否为null?因此,如果我知道“ hideInNav”为空。如何阻止它进一步执行?像下面这样的东西似乎不起作用,但是为什么呢? boolean hideInNav = parent.getProperties().get("hideInNav", false); String hideNavigation = hideInNav != null ? hideInNav : "";

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.