Tag: C#的

使用这种(基于扩展方法)速记的可能的缺陷

C#6更新 在C#6中?. 现在是一个语言function : // C#1-5 propertyValue1 = myObject != null ? myObject.StringProperty : null; // C#6 propertyValue1 = myObject?.StringProperty; 下面的问题仍然适用于旧版本,但如果开发一个新的应用程序使用新的?. 操作者是更好的做法。 原问题: 我经常要访问可能的空对象的属性: string propertyValue1 = null; if( myObject1 != null ) propertyValue1 = myObject1.StringProperty; int propertyValue2 = 0; if( myObject2 != null ) propertyValue2 = myObject2.IntProperty; 等等… 我经常使用它,我有一个片段。 如果符合以下条件,您可以在一定程度上缩小这个范围: propertyValue1 = myObject != […]

typedef指针常量古怪

请考虑下面的代码: typedef struct Person* PersonRef; struct Person { int age; }; const PersonRef person = NULL; void changePerson(PersonRef newPerson) { person = newPerson; } 出于某种原因,编译器正在关于只读值不可分配。 但const关键字不应该使指针为const。 有任何想法吗?

初始化实例字段与本地variables

我一直想知道为什么在下面的例子中, 不要初始化实例字段(依靠它将有它的默认值)并访问它,而局部variables显然必须被初始化,即使我初始化为默认值它会得到反正… public class TestClass { private bool a; public void Do() { bool b; // That would solve the problem: = false; Console.WriteLine(a); Console.WriteLine(b); //Use of unassigned local variable 'b' } }

如何合并多个pdf文件(在运行时生成)?

如何通过ItextSharp合并多个pdf文件(在运行时生成),然后打印出来。 我发现了以下链接,但该方法需要pdf名称考虑到PDF文件存储,这不是我的情况。 我有多个报告,我会通过这种方法将它们转换成pdf files : private void AddReportToResponse(LocalReport followsReport) { string mimeType; string encoding; string extension; string[] streams = new string[100]; Warning[] warnings = new Warning[100]; byte[] pdfStream = followsReport.Render("PDF", "", out mimeType, out encoding, out extension, out streams, out warnings); //Response.Clear(); //Response.ContentType = mimeType; //Response.AddHeader("content-disposition", "attachment; filename=Application." + extension); //Response.BinaryWrite(pdfStream); //Response.End(); } 现在我想合并所有生成的文件( Bytes […]

获取Windows 8自动颜色主题的活动颜色

在Windows 8中,我已将颜色scheme设置为自动,并在x分钟后将我的壁纸configuration为更改。 配色scheme根据活动壁纸而改变。 我正在开发一个WPF应用程序,并希望当Windows更改颜色scheme以匹配当前壁纸时我的渐变。 有没有办法获得当前/实际的配色scheme,并通知在C#中的变化?

重载新/删除

我在我的程序中做了一个内存泄漏查找程序,但我的方式超载新的和删除(也是新的[]和删除[])似乎没有任何事情。 void* operator new (unsigned int size, const char* filename, int line) { void* ptr = new void[size]; memleakfinder.AddTrack(ptr,size,filename,line); return ptr; } 上面的代码片段显示了我重载new的方式。 我想这是运营商返回void *的东西,但我不知道该怎么办。

如何设置文件权限(跨平台)

我正在使用C ++ ofstream来写出一个文件。 我想将权限设置为只能由用户访问:700.在unix中; 我想我可以发出一个system("chmod 700 file.txt"); 但是我需要这个代码来在Windows上工作。 我可以使用一些Windows API; 但是什么是最好的c ++跨平台的方式来做到这一点?

如何在boost asio中设置阻塞套接字的超时时间?

有没有办法取消挂起的操作(没有断开连接)或设置增强库函数的超时? 即我想设置一个阻塞套接字在升压ASIO超时? socket.read_some(boost :: asio :: buffer(pData,maxSize),error_); 例如:我想从套接字中读取一些信息,但是如果10秒钟过去了,我想抛出一个错误。

recursion列表展平

我可以自己写这个,但是我试图完成的具体方式是把我扔掉。 我正在尝试编写一个类似于.NET 3.5中引入的通用扩展方法,该扩展方法将嵌套IEnumerable的IEnumerables(等等)并将其扁平化为一个IEnumerable。 任何人有任何想法? 具体来说,我遇到了扩展方法本身的语法问题,所以我可以使用flatteningalgorithm。

如何转义string在Boost Regex中使用

我只是绕过正则expression式,而我正在使用Boost Regex库。 我有一个需要使用正则expression式,包括一个特定的url,它扼stream圈,因为显然是在URL中保留为正则expression式,需要转义的字符。 在Boost库中是否有任何函数或方法为这种用法转义string? 我知道在其他大多数正则expression式实现中都有这样的方法,但是在Boost中我没有看到这样的方法。 或者,是否有需要转义的所有字符的列表?