Tag: C#的

为什么在C#中捕获并重新抛出exception?

我正在看可序列化DTO上的文章C# – 数据传输对象 。 文章包含这段代码: public static string SerializeDTO(DTO dto) { try { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); xmlSer.Serialize(sWriter, dto); return sWriter.ToString(); } catch(Exception ex) { throw ex; } } 本文的其余部分看起来理智和合理(对于noob),但是try-catch-throw会抛出WtfException … 这不完全等同于不处理exception吗? 人机工程学: public static string SerializeDTO(DTO dto) { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); […]

你如何在C中传递一个函数作为参数?

我想创build一个函数,执行一个数据传递参数的函数。 你如何在C中传递一个函数作为参数?

POCO vs DTO

POCO = Plain Old CLR(或更好:Class)对象 DTO =数据传输对象 在这篇文章中有一个区别,但坦率地说,我读的大部分博客都是按照DTO的定义来描述POCO:DTO是用于在应用程序的各个层之间移动数据的简单数据容器。 POCO和DTO是一样的吗? (ps:看这篇关于POCO作为一种生活方式的文章 )

为什么在C和C ++的算术运算之前,一个简短的被转换为int?

从我从这个问题得到的答案看来,C ++inheritance了从C执行算术运算时将short转换为int这一要求。请问您为什么首先在C中引入了这个大脑? 为什么不把这些操作做得short呢? 例如( 从dyp的意见中得到的build议 ): short s = 1, t = 2 ; auto x = s + t ; x将具有inttypes。

如何链接到Code :: Blocks的库?

C ++ GUI教程:对TextOut的未定义引用 我有同样的问题,但我是编程和Code :: Blocks的新手,我想使用GDI32库。 我怎样才能安装它? 我很困惑,因为我可以使用windows.h头文件,但像TextOut一些function不可用。

获取ServiceStack保留types信息

我使用ServiceStack序列化和反序列化一些对象到JSON。 考虑这个例子: public class Container { public Animal Animal { get; set; } } public class Animal { } public class Dog : Animal { public void Speak() { Console.WriteLine("Woof!"); } } var container = new Container { Animal = new Dog() }; var json = JsonSerializer.SerializeToString(container); var container2 = JsonSerializer.DeserializeFromString<Container>(json); ((Dog)container.Animal).Speak(); //Works ((Dog)container2.Animal).Speak(); //InvalidCastException […]

cout <<打印函数的调用顺序?

下面的代码: myQueue.enqueue('a'); myQueue.enqueue('b'); cout << myQueue.dequeue() << myQueue.dequeue(); 打印“ba”到控制台 而: myQueue.enqueue('a'); myQueue.enqueue('b'); cout << myQueue.dequeue(); cout << myQueue.dequeue(); 打印“ab”这是为什么? 似乎cout正在调用最靠外的函数(最接近这个函数)并且正在工作,它的行为方式是什么?

在有符号整数上进行算术位移

我想弄清楚算术位移运算符在C中的工作方式,以及它将如何影响带符号的32位整数。 为了简单起见,假设我们在一个字节(8位)内工作: x = 1101.0101 MSB[ 1101.0101 ]LSB 阅读堆栈溢出和一些网站上的其他post,我发现: <<将转向MSB(在我的情况左边),并用0填充“空”LSB位。 而且>>将移向LSB(在我的情况下是右边的),并用MS位填充“空”位 因此, x = x << 7将导致将LSB移到MSB,并将所有内容都设置为0。 1000.0000 现在,让我们说,我会>> 7 ,最后的结果。 这会导致[0000.0010] ? 我对吗? 关于换class经营者的假设我是否正确? 我刚在我的机器上testing过,** int x = 1; //000000000……01 x = x << 31; //100000000……00 x = x >> 31; //111111111……11 (Everything is filled with 1s !!!!!) 为什么?

C#捕获堆栈溢出exception

我得到了一个recursion调用的方法,抛出一个堆栈溢出exception。 第一个调用被try catch块包围,但是exception没有被捕获。 堆栈溢出exception的行为是否有特殊的方式? 我能捕捉/处理exception吗? 注意:如果相关: 在主线程中不会抛出exception 代码抛出exception的对象由Assembly.LoadFrom(…)。CreateInstance(…)手工加载。

如何仅在需要时提升权限?

这个问题适用于Windows Vista! 我有一个通常没有pipe理权限的应用程序。 有一个活动需要pipe理权限,但我不想用更高的权限启动应用程序本身,当我知道大部分时间用户将不会使用该function。 我正在考虑某些方法,通过这种方法我可以在某些事件(例如按下button)上提升应用程序的权限。 例: 替代文字http://i43.tinypic.com/mhy174.jpg 如果用户点击这个button,那么他会被UAC对话或同意提示。 我该怎么做?