Tag: 执行

说服C#编译器在成员返回后执行将停止

我不认为这是目前可行的,或者它是否是一个好主意,但这是我刚才想到的。 我使用MSTest对我的C#项目进行unit testing。 在我的一个测试中,我执行以下操作: MyClass instance; try { instance = getValue(); } catch (MyException ex) { Assert.Fail(“Caught MyException”); } instance.doStuff(); // Use of unassigned local variable ‘instance’ 为了使这段代码编译,我必须在其声明或catch块中为instance赋值。 我可以选择在Assert.Fail之后return ,但这仍然是一种解决方法,而不是编译器只知道在此之后执行无法继续。 Assert.Fail永远不会,据我所知,允许执行继续它,因此instance永远不会没有值。 那为什么我必须给它赋值? 如果我将Assert.Fail更改为类似throw ex ,则代码编译正常,我假设因为它知道exception将禁止执行进入instance将未初始化使用的点。 相反,如果我不希望测试失败,而是标记为不确定,该怎么办? 我可以做一个Assert.Inconclusive而不是Fail ,如果编译器知道之后执行不会继续,那就太好了。 那么运行时与编译时知识的情况是否允许执行在哪里进行? C#是否有理由说某个成员(在这种情况下是Assert.Fail在返回后永远不允许执行? 也许这可能是方法属性的forms。 这会对编译器有用还是不必要的复杂性? 外部unit testing 由于人们[有效]指出这是编写unit testing的愚蠢方式,因此请考虑我在unit testing领域之外的问题: MyClass instance; if (badThings) { someMethodThatWillNeverReturn(); } else […]

在C#中执行SQL语句?

嘿家伙我想执行我的SQL语句,但我有synatx的麻烦,有人可以帮我理解我做错了吗? 谢谢,阿什。 public void AddToDatabase(string[] WordArray, int Good, int Bad, int Remove) { for (int WordCount = 0; WordCount < WordArray.Length; WordCount++) { string sSQL = "INSERT INTO WordDef (Word, Good, Bad, Remove) VALUES (" + WordArray[WordCount] + ", " + Good + ", " + Bad + ", " + Remove + ")"; Debug.Print(sSQL); […]

如何在c sharp中限制函数的执行时间?

我有一个问题。 我正在写一个基准测试,我有一个function,而不是在2秒内或在5分钟后完成(取决于输入数据)。 如果执行时间超过3秒,我想停止该function…… 我该怎么做? 非常感谢!

返回标识值时,ExecuteScalar vs ExecuteNonQuery

如果我想返回新插入行的标识列,请尝试确定是否最好使用ExecuteScalar或ExecuteNonQuery 。 我已经阅读了这个问题并且我理解了那里的差异,但是在查看几周前我写的一些代码时(虽然从这个网站大量借用)我发现在我的插入中我使用的是ExecuteScalar ,如下所示: public static int SaveTest(Test newTest) { var conn = DbConnect.Connection(); const string sqlString = “INSERT INTO dbo.Tests ( Tester , Premise ) ” + ” VALUES ( @tester , @premise ) ” + “SET @newId = SCOPE_IDENTITY(); “; using (conn) { using (var cmd = new SqlCommand(sqlString, conn)) { cmd.Parameters.AddWithValue(“@tester”, newTest.tester); […]

从.net代码中停止SQL查询执行

我正在从’.net’代码执行一个存储过程。 由于存在大量数据,因此执行时间过长。 有没有办法从c#代码中停止执行? 换句话说,如果我们从数据库本身执行查询,有一个选项可以停止执行,但在代码中是否可能?