Tag: boolean

C#如何在类中使用get,set和use enums

我有一个程序,我使用类存储设置。 我需要它来使用set和get函数来更改和存储设置。 我试过这个,但我没有让它发挥作用。 任何人都可以帮我这个吗? private enum _Difficulty { Easy, Normal, Hard }; public void SetDifficulty(Difficulty) { _Difficulty = Difficulty; } public enum GetDifficulty() { return _Difficulty; } 有没有办法在get和set的类中使用enums ? 我还需要bool和int 。

将布尔参数传递给SQL Server存储过程

我之前问了这个问题,我以为我发现了问题所在,但我没有。 我在将布尔参数传递给存储过程时遇到问题。 这是我的c#代码: public bool upload = false; protected void showDate(object sender, EventArgs e) { if (Radio1.Checked) { upload = true; Radio2.Checked = false; date_div.Visible = true; date_div2.Visible = false; } } protected void getMonthList() { selectedYear = year.SelectedValue.ToString(); SqlConnection connection = new SqlConnection(connString); SqlCommand cmd = connection.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; connection.Open(); cmd.CommandText = “getMonth”; […]

GetHashCode用于多个布尔值

在下面的StackOverflow 问题中, Jon Skeets的回答指出了一个很好的实现是…… // Note: Not quite FNV! public override int GetHashCode() { unchecked // Overflow is fine, just wrap { int hash = (int) 2166136261; // Suitable nullity checks etc, of course 🙂 hash = (hash * 16777619) ^ bool1.GetHashCode(); hash = (hash * 16777619) ^ bool2.GetHashCode(); return hash; } } 如果两个字段都是bool怎么办? 这仍然是一个很好的实现还是会有点矫枉过正? […]

在C#if语句中检查多个布尔条件的最佳方法

我的代码(C#)上有3个布尔值和一个取决于布尔值是true和false的int32属性。 什么是最好的方式,以另一种方式实现这一点,而不是如下语句: if(a && b && !c) d = 1; if(a && !b && !c) d = 2; //etc.. ect… 编辑:3个布尔值必须具有可能的每个组合来设置int32值。 编辑2:对于两个不同的布尔比较,“d”的值可以相同。

Nullable 类型有什么用?

布尔变量可以保持真或假,而布尔? 也可以为空。 为什么我们需要bool的第三个值? 如果它不是真的 ,它是什么,它是== false 你能提出一个我喜欢布尔的场景吗? 代替。 谢谢

为什么C#中的1 && 2是假的?

我对另一个问题感到沮丧 。 所以我写了这个例子。 在C中,以下是真实的。 见演示 int main() { printf(“%d”, 1 && 2); return 0; } 输出: 1 在C#中。 这是假的。 为什么这是假的? 此外,我不明白为什么我需要在这个例子中创建bool运算符,但不是在我的另一个问题,但无论如何。 为什么以下是假的? 对我来说完全是无稽之谈。 这里描述了使得下面的假的逻辑 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { MyInt a=1, b=2; bool res=a && b; Console.WriteLine(“result is {0}”, res); } […]

来自C#的C ++:C ++函数(在DLL中)返回false,但C#认为它是真的!

我正在编写一个C#app,它在C ++ API中调用了一些函数。 我将C ++代码构建到DLL中,C#代码使用DllImport调用API。 (我使用.DEF文件作为C ++ DLL,因此我不需要extern“C”。) 到目前为止,API有一个function,目前绝对没有任何function: bool Foo() { return false; } 在C#中,我有以下内容: public class FooAPI { [DllImport(“Foo.dll”)] public static extern bool Foo(); } … bool b = FooAPI.Foo(); if (!b) { // Throw an exception } 我的问题是,由于某种原因,b总是评估为TRUE 。 我在if(!b)上有一个断点,调试器将其报告为’true’,与C ++函数返回的内容无关。 C#bool和C ++ bool一样吗? 虽然事实并非如此,但我仍然不知道如何将返回值设为’true’:) 任何人都可以帮我解决这个奇怪的差异吗? 提前致谢!

为什么重载true和false而不是定义bool运算符?

我一直在阅读有关在C#中重载true和false的内容,我想我理解这与定义bool运算符之间的基本区别。 我看到的例子是这样的: public static bool operator true(Foo foo) { return (foo.PropA > 0); } public static bool operator false(Foo foo) { return (foo.PropA <= 0); } 对我来说,这跟说: public static implicit operator bool(Foo foo) { return (foo.PropA > 0); } 据我所知,区别在于,通过分别定义true和false,您可以拥有一个既是真也可以是假的对象,或者既不是真也不是假: public static bool operator true(Foo foo) { return true; } public static bool operator false(Foo […]

坚持function和布尔

我有一个名为firstRun()函数,在其中我有两个已定义的filesDeleted和dirsDeleted 。 同样在函数里面我有if (filesDeleted == true && dirsDeleted == true) { 当我尝试调试应用程序时,我得到错误 – Use of unassigned local variable ‘filesDeleted’和Use of unassigned local variable ‘dirsDeleted’尝试了很多不同的解决方案,根本不起作用。 这是代码: private void firstRun(bool forceDelete) { string Path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), “myLauncher”); string[] Files = Directory.GetFiles(Path); string[] Dirs = Directory.GetDirectories(Path); bool filesDeleted; bool dirsDeleted; if (forceDelete == true) { if (Directory.Exists(Path)) { […]

布尔类型

在代码审查期间,我发现我们的C#代码的许多地方看起来像这样: if(IsValid()) { return true; } else { return false; } 甚至“更好”: return (IsValid()? true : false); 我总是想知道为什么不写这样的代码: return IsValid(); 这是我编写此代码的方式。 我不是在质疑开发人员的技能,但可能试图调查开发人员的灵魂。 为什么开发人员喜欢更复杂的代码而不是更简单直观? 或许原因是很难接受布尔类型作为一等公民?