Tag: C#的

asynchronous无效,ASP.Net和杰出操作计数

我想了解为什么ASP.Net应用程序中的asynchronous无效方法可能会导致以下exception,而似乎asynchronous任务不会: System.InvalidOperationException: An asynchronous module or handler completed while an asynchronous operation was still pending 在.NET中,我对于async是一个相对陌生的东西,但是我觉得我已经试图通过一些现有的资源来运行这个资源,包括以下所有内容: 返回void和返回一个Task有什么区别? 这是所有关于SynchronizationContext asynchronous语法糖build议 在ASP.NET中asynchronous 从这些资源中,我明白最好的做法是典型地返回任务并避免asynchronous无效。 我也明白,async void在方法被调用时递增未完成操作的计数,并在完成时递减。 这听起来至less是我的问题的答案的一部分。 但是,我所缺less的是当我返回Task时会发生什么,为什么这样做会使事情“工作”。 这是一个人为的例子来进一步说明我的问题: public class HomeController : AsyncController { // This method will work fine public async Task<ActionResult> ThisPageWillLoad() { // Do not await the task since it is meant to be […]

当程序退出时,是否有理由在C ++中调用delete?

在我的C ++ main函数中,例如,如果我有一个指向使用堆内存(而不是堆栈内存)的variables的指针 – 这是我的应用程序退出后自动释放? 我会这样认为的。 即使如此,即使您认为在退出时自动释放内存的情况下永远不会使用堆分配,也是一种很好的做法吗? 例如,有没有这样做的意义? int main(…) { A* a = new A(); a->DoSomething(); delete a; return 0; } 我在想也许万一我重构(或其他人重构)的代码,并将其放在应用程序的其他地方,其中delete是真的neccecary。 除了Brian R. Bondy(专门讨论C ++中的含义)的答案外 ,Paul Tomblin 对C特定的问题也有很好的回答,这个问题也谈到了C ++析构函数。

删除string中的分隔符之间的文本(使用正则expression式?)

考虑要求find匹配的一组字符,并删除它们之间的任何字符, 以及那些字符/分隔符。 以下是一组分隔符: [] square brackets () parentheses "" double quotes '' single quotes 这里有一些应该匹配的string的例子: Given: Results In: ——————————————- Hello "some" World Hello World Give [Me Some] Purple Give Purple Have Fifteen (Lunch Today) Have Fifteen Have 'a good'day Have day 以及一些不应该匹配的string示例: Does Not Match: —————— Hello "world Brown]co[w Cheese'factory 如果给定的string不包含一组匹配的分隔符,则不会修改。 inputstring可能有许多匹配的分隔符对。 如果一组2个分隔符重叠(即he[llo "worl]d" )),那么这将是一个我们可以忽略的边界情况。 […]

generics – T是一个数字?

我试图想出一个方法来创build一个通用类的数字types只做一些计算。 是否有一个我所缺less的所有数字types(int,double,float …)的通用接口? 如果不是的话,那么创build这样一个class级的最好方法是什么? 更新: 我试图达到的主要目的是检查T型的两个variables之间的谁是更大的。

在C#中面向方面编程

面向方面编程有什么好的资源来包装我的头? PS:我需要了解AO编程,而不是可用于.NET或C#的库或框架:)

围绕一个双重的X有效数字

如果我有一个double(234.004223)等,我想在C#中将其舍入为x个有效数字。 到目前为止,我只能find方法来四舍五入到小数点后的位置,但是这只是在数字中有0的情况下删除精度。 例如,小数点后一位0.086变为0.1,但我希望保持在0.08。

检测一个方法是否被reflection(C#)覆盖

假设我有一个基类TestBase,我定义了一个虚方法TestMe() class TestBase { public virtual bool TestMe() { } } 现在我inheritance这个类: class Test1 : TestBase { public override bool TestMe() {} } 现在,使用reflection,我需要find如果方法TestMe已被覆盖子类 – 是否有可能? 我所需要的 – 我正在编写一个types为“object”的devise器可视化工具来显示inheritance的整个层次结构,并显示哪个虚拟方法在哪个级别被覆盖。

C ++ 11初始化程序列表失败 – 但仅限于长度为2的列表

我跟踪了一个模糊的日志logging错误,因为长度为2的初始化列表似乎是一个特例! 这怎么可能? 使用CXXFLAGS=-std=c++11 -stdlib=libc++ ,使用Apple LLVM版本5.1(clang-503.0.40) CXXFLAGS=-std=c++11 -stdlib=libc++ 。 #include <stdio.h> #include <string> #include <vector> using namespace std; typedef vector<string> Strings; void print(string const& s) { printf(s.c_str()); printf("\n"); } void print(Strings const& ss, string const& name) { print("Test " + name); print("Number of strings: " + to_string(ss.size())); for (auto& s: ss) { auto t = […]

有人还在C#中使用,如果有的话,为什么?

我想知道是否任何人仍然使用C#中的“goto”关键字语法和可能的原因有这样做。 我倾向于认为任何导致读者跳出代码的言论都是不好的做法,但是想知道是否有任何可信的scheme来使用这种语法? 转到关键字定义

使用Linq将对象列表分组到对象列表的新分组列表中

我不知道这是否可能在Linq,但这里呢… 我有一个对象: public class User { public int UserID { get; set; } public string UserName { get; set; } public int GroupID { get; set; } } 我返回的列表可能如下所示: List<User> userList = new List<User>(); userList.Add( new User { UserID = 1, UserName = "UserOne", GroupID = 1 } ); userList.Add( new User { UserID = […]