Tag: C#的

内存泄漏在C#

是否有可能在托pipe系统泄漏内存,当你确保所有句柄,实现IDispose东西都处置? 会不会有一些变数被遗漏的情况呢?

三元运算符?:vs if … else

在C ++中,?:操作符比if()… else语句更快吗? 他们之间有编译代码之间的任何区别?

错误当使用2个不同的命令时,“已经有一个与此命令关联的打开的DataReader必须先closures”

我有这个遗留代码: private void conecta() { if (conexao.State == ConnectionState.Closed) conexao.Open(); } public List<string[]> get_dados_historico_verificacao_email_WEB(string email) { List<string[]> historicos = new List<string[]>(); conecta(); sql = @"SELECT * FROM historico_verificacao_email WHERE nm_email = '" + email + @"' ORDER BY dt_verificacao_email DESC, hr_verificacao_email DESC"; com = new SqlCommand(sql, conexao); SqlDataReader dr = com.ExecuteReader(); if (dr.HasRows) { while […]

如何得到昨天和明天datetime在C#

我有一个代码: int MonthNow = System.DateTime.Now.Month; int YearNow = System.DateTime.Now.Year; int DayNow = System.DateTime.Now.Day; 我怎样才能在C#中获得昨天和明天的日月年? 当然,我可以写: DayTommorow = DayNow +1; 但明天可能是其他月份或年份。 有没有在C#内置的工具来找出昨天和今天?

'while(1)`替代简化分支

我不时用while(1)块来压扁一连串的if..else 。 它沿着这些线。 而不是做: // process if (success) { // process if (success) { //process if (success) { // etc } } } 我做: while (1) { // process if (!success) break; // process if (!success) break; // process if (!success) break; // etc break; } 在这段时间结束的while我有点懊恼。 我可以逃避一个精简的构造(即最终没有break )吗? 我可以用一个variables(或注册?)交易最后的break 。 这不完全是更清楚或更清楚。 int once = […]

什么可能导致P / Invoke参数通过时失序?

这是一个特别在ARM上发生的问题,而不是在x86或x64上。 我有一个用户报告的这个问题,并能够通过Windows IoT在Raspberry Pi 2上使用UWP进行重现。 我以前遇到过这种types的调用约定不匹配的问题,但是我在P / Invoke声明中指定了Cdecl,并试图在本地显式地添加__cdecl,并得到了相同的结果。 这里是一些信息: P /调用声明( 参考 ): [DllImport(Constants.DllName, CallingConvention = CallingConvention.Cdecl)] public static extern FLSliceResult FLEncoder_Finish(FLEncoder* encoder, FLError* outError); C#结构( 参考 ): internal unsafe partial struct FLSliceResult { public void* buf; private UIntPtr _size; public ulong size { get { return _size.ToUInt64(); } set { _size = (UIntPtr)value; } […]

使用C ++ 11期货:std ::asynchronous崩溃的嵌套调用:编译器/标准库的错误?

在我的真实程序中引入std :: async的嵌套调用时遇到崩溃后,我能够在以下最小的示例中重现该问题。 它经常崩溃,但并不总是。 你看到什么东西出了问题,还是它是一个编译器或标准库的错误? 请注意,如果添加对期货的get()调用,问题仍然存在。 #include <future> #include <vector> int main (int, char *[]) { std::vector<std::future<void>> v; v.reserve(100); for (int i = 0; i != 100; ++i) { v.emplace_back(std::async(std::launch::async, [] () { std::async(std::launch::async, [] { }); })); } return 0; } 我观察到两种不同的崩溃:(大约每五分钟一次) 终止与“这个应用程序已经要求运行时间以一种不寻常的方式终止”。 抛出“std :: future_error”的实例后,什么():Promise已经满足了 。 环境: Windows 7的 gcc版本4.8.2(i686-posix-dwarf-rev3,由MinGW-W64项目构build),由Qt 5.3.2提供 命令行调用: g++ […]

堆栈跟踪与asynchronous/等待

很明显为什么堆栈跟踪会受到微软新的编程模式的影响。 我们现在有一个语义堆栈和一些物理的(我select的话)。 我看到的是一个exception的StackTrace属性(在debugging器中)是物理的,连接在一起: private async Task CheckFooAndBar() { var log = LogManager.GetLogger("Test"); log.Info("CheckFooAndBar"); try { await Foo(); } catch (Exception ex) { log.Info("StackTrace of last exception: " + ex.StackTrace); } Console.ReadKey(); } private async Task Foo() { await Task.Factory.StartNew(() => Thread.Sleep(1000)); await Bar(); await Task.Factory.StartNew(() => Thread.Sleep(1000)); } private async Task Bar() { await Task.Factory.StartNew(() […]

在C#4.0中命名参数和genericstypes推断

我一直在编程的假设是,当在C#4.0中调用方法时,为参数提供名称不会影响结果,除非这样做是“跳过”一个或多个可选参数。 所以我有点惊讶地发现以下行为: 给定一个采用Func<T> ,执行它并返回结果: public static T F<T>(Func<T> f) { return f(); } 另一种可以看到上述方法的方法: static void Main() { string s; 调用F(没有命名参数)编译没有任何问题: s = F<string>(() => "hello world"); // with explicit type argument <string> s = F(() => "hello world"); // with type inference 而当使用命名参数… s = F<string>(f: () => "hello world"); …使用显式types参数的上述代码行仍然编译没有问题。 也许不会太奇怪,如果你安装了ReSharper,它会提示“Type参数规范是多余的”。 但是,当删除types参数… s […]

C ++ 0x什么时候能完成?

好吧,这是我问的第一个问题,我不知道你不能回答你自己的问题。 回答: 2011年3月25日。:-)我不是在开玩笑,这是官方的。 那么,至less就委员会而言。 更新 2011年8月12日 C ++ FDIS已经得到ISO的一致批准。 21个国家机构中的21个投票通过APPROVE。