草庐IT

信息流

全部标签

c# - 为什么大多数异常都忽略特定于实例的信息?

我注意到大多数异常消息不包含特定于实例的详细信息,例如导致异常的值。他们通常只告诉您错误的“类别”。例如,当尝试用3rd序列化一个对象时。派对库,我收到一个MissingMethodException消息:"Noparameterlessconstructordefinedforthisobject."在很多情况下这就足够了,但通常(通常在开发过程中)会出现这样的消息"Noparameterlessconstructordefinedforthisobjectoftype'Foo'."可以直接找到错误原因,从而节省大量时间。InvalidArgumentException是另一个例子:

c# - 为什么 C# 调用方信息属性需要默认值?

我刚刚看到C#5调用者信息属性(http://msdn.microsoft.com/en-us/library/hh534540.aspx)。这似乎是一个非常有用的功能,我已经阅读了一些文档(http://www.codeproject.com/Tips/606379/Caller-Info-Attributes-in-Csharp)。但是,我只是想知道:为什么必须传入默认值?它们是如何使用的?以下示例代码显示了如何使用调用者信息属性:publicstaticvoidShowCallerInfo([CallerMemberName]stringcallerName=null,[Call

Git系列之修改历史提交信息

文章の目录1、查看git提交记录2、修改最近两个或者两次上的commit信息3、扩展:修改上一次gitcommit提交的信息参考写在最后1、查看git提交记录gitlog2、修改最近两个或者两次上的commit信息比如我这里有三次提交使用命令:gitrebase-iHEAD~2当使用gitrebase-iHEAD~3时,gitlog查看提交只有三条的话会报fatal:invalidupstream'HEAD~3'上说的这个错误。注意:这里显示的顺序其实是倒序。最新的提交在最下面,最老的提交在最上面。这里把我们要修改的commit,这里是倒数第二次的提交commit信息那个。对应的pick改成e

c# - AsyncWaitHandle.WaitOne 的详细信息

1)调用AsyncWaitHandle.WaitOne可能会阻塞客户端还是一定会阻塞客户端?2)WaitAll,WaitOne,WaitAny有什么区别? 最佳答案 WaitHandle.WaitOne()是一个实例方法,它将阻塞直到等待句柄发出信号(操作完成时)。如果之前已经发出信号(即操作已经完成),则可能不会阻止对WaitOne()的调用。WaitHandle.WaitAll()和WaitHandle.WaitAny()是允许您指定多个等待句柄同时监视的静态方法:WaitHandle.WaitAll()将等待,直到所有指定的句

c# - "PDB format is not supported"带有 .NET 可移植调试信息

最近几天我一直在huntingdownaproblem-结论:我的VisualStudio2017调试器无法在.NETFramework项目中使用“可移植”格式的PDB。对于可移植格式,我的意思是转到项目的设置,然后转到Build->Advanced然后选择portable在Debugginginformation下.当我开始调试像这样构建的.NETFramework项目时,断点未命中。当我暂停调试器并寻找它没有加载符号的原因时,它说(在Symbolloadinformation下):PDBformatisnotsupported我可以用任何.NETFramework项目重现它。目标框

c# - 在 C# 中向图像添加 EXIF 信息

我想将基本的exif信息添加到作者、相机型号、日期等图像中。有没有一种方法可以使用内置类而不使用其他外部库来做到这一点。图像格式是否像JPEG、PNG、TIFF、BMP,GIF支持所有EXIF字段。 最佳答案 System.Drawing允许使用PropertyItems/SetPropertyItem修改图像属性。可以找到样本here.但是这种访问是非常基本的,并且周围有很多库(例如参见HowtoeditEXIFdatain.NET)。所以我想知道这是否值得。毕竟,根据Wikipedia,只有JPEG和TIFF文件支持EXIF元数

c# - 有关结构实现接口(interface)时发生的情况的详细信息

我最近遇到了这个Stackoverflow问题:Whentousestruct?在里面,它有一个答案,说的有点深奥:Inaddition,realizethatwhenastructimplementsaninterface-asEnumeratordoes-andiscasttothatimplementedtype,thestructbecomesareferencetypeandismovedtotheheap.InternaltotheDictionaryclass,Enumeratorisstillavaluetype.However,assoonasamethodcalls

c# - 如何在长时间的服务器进程中显示信息丰富的实时进度数据

我有一个很长的过程可能需要1小时。这个过程由许多步骤组成,年复一年。我的主要问题是:如何在此过程中向最终用户提供信息丰富的实时进度,而不仅仅是一个虚拟加载栏。intindex=Convert.ToInt32(e.CommandArgument);booldone=false;intres=-1;intfromVal=int.Parse(gv_balance.Rows[index].Cells[0].Text);inttoVal=int.Parse(gv_balance.Rows[index].Cells[1].Text);intfinMonth=1;intfinYear=0;intEn

c# - 如何在 Windows 应用商店应用程序中获取正在执行的程序集版本信息?

将应用程序移植到Windows应用商店时,我注意到.NETCoreFramework不包括:System.Reflection.Assembly.GetExecutingAssembly()我用它来获取显示在菜单屏幕上的版本信息。是否有替代品或我是否被迫将信息存储在其他地方以供检索?编辑:我还发现我可以从typeof(MyType).AssemblyQualifiedName中提取版本号,但这似乎很糟糕。 最佳答案 我正在使用这个:publicstringGetApplicationVersion(){varver=Windows.

c# - 是否可以从 TPL Task 派生以从方法返回更多详细信息?

我原来的方法是这样的:stringDoSomeWork();方法DoSomeWork在另一个线程上开始一些工作并返回执行ID(只是随机字符串)。稍后我可以通过返回的执行ID查询结果。要点是在作业完成之前使执行ID可用。现在我想更改签名以返回Task,这样用户可以根据需要等待。TaskDoSomeWork();与此同时,我仍然需要返回执行ID(例如用于跟踪目的)并且我看到了一些选项。首先,使用out参数,其次,返回包含执行ID和任务的元组(在C#中,这看起来不是最佳选择),第三,我实际上想问一下。如果我创建一个派生Task的类会怎样:publicclassExtendedTask:Tas