草庐IT

vec_bool

全部标签

c# - 打开可空 bool 值 : case goes to null when value is true

我意识到处理可空类型的正确方法是使用HasValue属性。但我想知道为什么以下switch语句会在null情况下而不是默认情况下中断。使用VS2015C#4.0。另一台使用VS2010C#4.0的计算机没有同样的问题。privatevoidTesting(){bool?boolValue=true;switch(boolValue){casenull:break;//eventhoughvalueistrue,coderunsheredefault:break;}}编辑:观察到任何Nullable的行为如果只有caseNull和default已指定。 最佳答

c# - 为什么会为异步/等待状态机生成 bool "flag"?

如果编译以下代码:privateasyncTaskM(){returnawaitTask.FromResult(0);}然后反编译它(我使用了dotPeek)并检查最重要的MoveNext方法,您会看到在开头附近声明了一个bool变量;dotPeek为我选择了“标志”。boolflag=true;在这种情况下,您将在启动第一个异步调用后的默认case语句中看到该变量的一个后续使用者:if(!awaiter.IsCompleted){this.\u003C\u003E1__state=0;this.\u003C\u003Eu__\u0024awaiter11=awaiter;this.\

c# - 如何针对集合调用 Expression<Func<Entity, bool>>

我有一个从存储库模式定义存储库的接口(interface):interfaceIRepository{ListGetAllCustomers(Expression>expression);}我已经在EntityFramework上实现了它:classEntityFrameworkRepository{publicListGetAllCustomers(Expression>expression){returnDBContext.Customers.Where(expression).ToList();}}这似乎工作得很好,它允许我做类似的事情:varcustomers=entityFr

c# - 结构中 C# 固定 bool 数组的大小和对齐方式是什么?

在做P/Invoke的时候,数据布局的匹配很重要。我们可以通过使用一些属性来控制结构的布局。例如:structMyStruct{publicboolf;}给出大小为4。虽然我们可以告诉编译器将其设为1字节bool以匹配bool的C++类型:structMyStruct{[MarshalAs(UnmanagedType.I1)]publicboolf;}大小为1。这些是有道理的。但是当我测试固定的bool数组时,我感到困惑。unsafestructMyStruct{publicfixedboolfs[1];}给出4个字节的大小。和unsafestructMyStruct{publicfi

c# - 将 XML 元素存在反序列化为 C# 中的 bool

我正在尝试将Web服务中的一些XML反序列化为C#POCO。我已经为我需要的大多数属性工作了,但是,我需要根据元素是否存在来设置bool属性,但似乎看不到如何做到这一点?示例XML片段:1C#类示例:[Serializable,XmlRoot("someThing")]publicclassSomething{[XmlAttribute("test")]publicboolTest{get;set;}[XmlElement("someThingElse")]publicintElse{get;set;}//////trueiftargetelementispresent,///othe

c# - C# 是 int 吗?当 hasvalue = true 时,bool 总是被装箱吗?

ThisMSDNreference似乎表明当int?(或任何Nullable)有一个值,它总是装箱(因此数据存储效率低得多,内存方面比int)。是这样吗? 最佳答案 该页面指的是当您装箱Nullable时结构,而不是结构本身内部的值。在您尝试对可空类型本身进行装箱之前,存储可空类型不涉及装箱:int?a=42;//noboxingint?n=null;//noboxingobjectnObj=n;//noboxingobjectaObj=a;//onlynowwillboxingoccur此行为与装箱常规值类型(处理null情况除外

c# - 序列化 bool ?错误反射(reflect)类型

我有一个类似的类[Serializable]publicclassMyClass{[XmlAttribute]publicboolmyBool{get;set;}}但是当xml中不存在属性时,这会将bool的值序列化为false。当属性不在xml中时,我希望该属性为null。所以我试过了[Serializable]publicclassMyClass{[XmlAttribute]publicbool?myBool{get;set;}}但是随后序列化器出错Typet=Type.GetType("Assembly.NameSpace.MyClass");XmlSerializermySer

c# - 通过 bool 函数排序列表的更短方法

我有一个需要以特定方式排序的列表。我目前是这样解决的:varfiles=GetFiles().OrderByDescending(x=>x.Filename.StartsWith("ProjectDescription_")).ThenByDescending(x=>x.Filename.StartsWith("Budget_")).ThenByDescending(x=>x.Filename.StartsWith("CV_")).ToArray();这些文件将被合并到一个PDF文件中,这里的重点是某些文件应该放在开头,其余的放在最后。我想知道是否有更好的方法来编写这个“模式”,因为它

c# - JSonNet bool 序列化

快速提问:在JSONNet中——如何获取booltrue/false以序列化为bool1/0我可以看到我们如何处理空值以及所有似乎无法找到如何执行此操作的方法。这可能吗? 最佳答案 您可以像这样实现自定义转换器:[TestFixture]publicclassCustomJsonSerialization{[Test]publicvoidTest(){stringserializeObject=JsonConvert.SerializeObject(true,newBoolConverter());Assert.That(seria

c# - Interlocked 用于递增/模拟 bool 值,这安全吗?

我只是想知道一位开发人员(已经离开)的这段代码是否可以,我认为他想避免加锁。这与仅使用直接锁定之间是否存在性能差异?privatelongm_LayoutSuspended=0;publicvoidSuspendLayout(){Interlocked.Exchange(refm_LayoutSuspended,1);}publicvoidResumeLayout(){Interlocked.Exchange(refm_LayoutSuspended,0);}publicboolIsLayoutSuspended{get{returnInterlocked.Read(refm_Layo