Tag: if statement

在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”的值可以相同。

如果是复选框的语句

我想知道如何编写if语句来查看是否选中了一个或另一个复选框。 我有两个复选框。 我希望它检查是否选中复选框1并且复选框2为空然后调用此函数,如果选中复选框2并且复选框1为空则调用另一个函数。 使用IF语句非常糟糕,并且不确定如何将复选框转换为可读值。

写if-else块的更好方法

我有以下代码(示例代码),它非常有效。 我想如果还有其他更好的方法,我们可以用更少的代码更准确地编写以下代码片段。 if(language == “English”) { if(Student_id == 0) { someFunction(); } else { if(getMarks(Student_id) > 50 || subjectCount > 1 || projectCount > 0) { someFunction(); } } } 另请注意,如果Student_id为0 ,则getMarks(Student_id)会抛出错误

C#要么返回false,要么什么都不做

我想知道是否有办法不必重复相同的if构造 ,而是调用StatusCheck() 。 成功时它不能返回true。 有谁知道这个问题更好的标题? bool Enable() { if (!GetStatus(ref status)) { Trace.WriteLine(“Error”); return false; } // do stuff if (!GetStatus(ref status)) { Trace.WriteLine(“Error”); return false; } // do more stuff if (!GetStatus(ref status)) { Trace.WriteLine(“Error”); return false; } // do even more stuff // 6 more times the above return true; }

如果C#中的语句简化

我有一行代码如下: if (obj is byte || obj is int || obj is long || obj is decimal || obj is double || obj is float) 是否有可能写出比这更优雅的东西? 就像是: if (obj is byte, int, long) 我知道我的例子是不可能的,但有没有办法让这个看起来“更干净”?

如何避免多个嵌套的IF

我目前正在尝试将我的程序重组为更多OO并更好地实现已知模式等。 我有很多嵌套的IF语句,想要摆脱它们。 我怎么能这样做? 我的第一个方法是用例外来完成它,所以例如 public static Boolean MyMethod(String param) { if (param == null) throw new NullReferenceException(“param may not be null”); if (param.Equals(“none”) || param.Equals(“0”) || param.Equals(“zero”)) throw new ArgumentNullException(“param may not be zero”); // Do some stuff with param // This is not executed if param is null, as the program stops a soon […]

带有2个动作的单行if语句

我想做一行if语句有多个动作。 默认是这样的: (if) ? then : else userType = (user.Type == 0) ? “Admin” : “User”; 但我不需要“别的”,我需要一个“别的如果” 像多行中那样: if (user.Type == 0) userType = “Admin” else if (user.Type == 1) userType = “User” else if (user.Type == 2) userType = “Employee” 单线有可能吗?

切换elseif切换案例

我们如何切换下面的if -else语句来切换case语句..任何人都可以帮忙… if (Webcc1.Contains(licensePartID)) { dtExpiryDate = dtActivatedDate.AddYears(1); int isExpiry = DateTime.Compare(dtActivatedDate, dtExpiryDate); if (isExpiry >= 0) { setError(lblSystemErr, “This action cannot be performed. The subscription period of the license key has expired”); return; } } else if (Webcc3.Contains(licensePartID)) { dtExpiryDate = dtActivatedDate.AddYears(3); int isExpiry = DateTime.Compare(dtActivatedDate, dtExpiryDate); if (isExpiry >= 0) { setError(lblSystemErr, “This […]

如何引用AppState变量中的数据?

问题是我找不到在if条件中测试存储在AppState [“variableName”](或App.variableName或HttpContext.Current.Application [“variableName”]等)中的任何内容的方法。 (它只将它视为一个对象,即使我可以在页面上用Razor绘制它作为字符串变量我认为它是) 所以,我无法比较它们来说出一个实际的字符串值。 我在无数其他尝试中试过ToString()无济于事。 我的问题是:如何使用C#在WebMatrix Web页面中使用AppState变量实现全部function?

错误:当前上下文中不存在名称“名称”

我已经去编辑代码 – >这绝不是一件好事! 代码用于MVC中的文件上传器。 问题是我一次上传两个文件,这意味着它们被插入到数据库中的不同行中。 这是原始代码: public ActionResult Index() { ViewData[“Message”] = “Convert your eBooks!”; foreach (string upload in Request.Files) { if (!Request.Files[upload].HasFile1()) continue; string mimeType = Request.Files[upload].ContentType; Stream fileStream = Request.Files[upload].InputStream; string fileName = Path.GetFileName(Request.Files[upload].FileName); int fileLength = Request.Files[upload].ContentLength; byte[] fileData = new byte[fileLength]; fileStream.Read(fileData, 0, fileLength); const string connect = @”Server=localhost;Database=Images;user id=taraw; password=siemensbs;”; […]