Tag: C#的

我怎样才能得到正在执行的程序集版本?

我正在尝试使用下面的代码在C#3.0中获得正在执行的程序集版本: var assemblyFullName = Assembly.GetExecutingAssembly().FullName; var version = assemblyFullName .Split(',')[1].Split('=')[1]; 还有另外一个适当的方法吗?

在Qt,C ++中检查文件夹是否存在(以及创build文件夹)

在Qt中,如何检查当前目录中是否存在给定文件夹? 如果它不存在,那么我该如何创build一个空文件夹?

如何在string文字中插入换行符?

在.NET中,我可以提供\r或\nstring文字,但是有一种方法来插入像“新行”特殊字符像Environment.NewLine静态属性?

如何尝试将string转换为Guid

我没有findGuid的TryParse方法。 我想知道其他人如何处理将string格式的guid转换为guidtypes。 Guid Id; try { Id = new Guid(Request.QueryString["id"]); } catch { Id = Guid.Empty; }

为什么它是有效连接空string,但不要调用“null.ToString()”?

这是有效的C#代码 var bob = "abc" + null + null + null + "123"; // abc123 这不是有效的C#代码 var wtf = null.ToString(); // compiler error 为什么第一个陈述是有效的?

如何驱动C#,C ++或Java编译器来计算1 + 2 + 3 + … + 1000?

在最近的一次采访中,我被问到一个非常奇怪的问题。 面试官问我如何使用编译器function来计算1 + 2 + 3 + … + 1000。 这意味着我不允许编写程序并执行它,但是我应该编写一个程序,它可以在编译时驱动编译器计算总和,并在编译完成时输出结果。 作为一个暗示,他告诉我可以使用编译器的generics和预处理器特性。 可以使用C ++,C#或Java编译器。 有任何想法吗??? 这个问题是不相关的计算总和没有任何循环问这里 。 另外,应该注意的是,这个总和应该在编译时计算。 使用C ++编译器指令打印结果是不可接受的。 阅读更多关于已发布的答案,我发现使用C ++模板编译期间解决问题称为元编程 。 这是Erwin Unruh博士在标准化C ++语言的过程中偶然发现的一种技术。 您可以在元编程的wiki页面上阅读更多关于此主题的内容。 看来有可能使用Java注释在Java中编写程序。 你可以看看下面的女士的答案。 一本关于C ++元编程的好书就是这个 。 值得一看,如果感兴趣。 一个有用的C ++元编程库是Boost的MPL 这个链接 。

Asp.Net Core 1中的services.AddTransient,service.AddScope和service.AddSingleton方法有什么区别?

我想在Asp.Net Core 1中实现dependency injection 。 所以在将这些代码添加到ConfigureServices方法后,两种方式都可以工作。 services.AddTransient和service.AddScope方法有什么区别是Asp.Net Core 1? public void ConfigureServices(IServiceCollection services) { // Add framework services. // Add application services. services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddScope<IEmailSender, AuthMessageSender>(); }

C#清理文件名

我最近一直在从各个地方把一堆MP3转移到一个存储库。 我一直在使用ID3标签构build新的文件名(谢谢,TagLib-Sharp!),我注意到我得到了一个System.NotSupportedException : “给定path的格式不被支持。” 这是由File.Copy()或Directory.CreateDirectory() 。 认识到我的文件名需要消毒没多久。 所以我做了明显的事情: public static string SanitizePath_(string path, char replaceChar) { string dir = Path.GetDirectoryName(path); foreach (char c in Path.GetInvalidPathChars()) dir = dir.Replace(c, replaceChar); string name = Path.GetFileName(path); foreach (char c in Path.GetInvalidFileNameChars()) name = name.Replace(c, replaceChar); return dir + name; } 令我惊讶的是,我仍然得到例外。 事实certificate,':'不在Path.GetInvalidPathChars()的集合中,因为它在path根中是有效的。 我想这是有道理的 – 但这是一个相当普遍的问题。 有没有人有一些短码清理path? 我已经提出了最彻底的,但它感觉可能是矫枉过正。 // […]

从数据库表生成类

我怎样才能从一个SQL Server表中生成一个类? 我不是在谈论使用一些ORM。 我只需要创build实体(简单的类)。 就像是: public class Person { public string Name { get;set; } public string Phone { get;set; } }

如何在C#中添加(简单)跟踪?

我想介绍一些我正在写的C#应用​​程序的跟踪。 可悲的是,我永远不会记得它是如何工作的,并希望有参考质量的教程时不时的检查。 它应该包括: 添加注册TraceListeners的App.config / Web.config的东西 如何在调用应用程序中设置它 你知道我们应该链接到的超级教程吗? 编辑:格伦·斯拉文指出我在正确的方向。 把它添加到你的App.config / Web.config里面<configuration/> : <system.diagnostics> <trace autoflush="true"> <listeners> <add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter" initializeData="trace.log" /> </listeners> </trace> </system.diagnostics> 这将添加一个TextWriterTraceListener ,它将捕获您发送给Trace.WriteLine等的所有内容。 编辑: @DanEsparza指出,你应该使用Trace.TraceInformation , Trace.TraceWarning和Trace.TraceError而不是Trace.WriteLine ,因为它们允许您以与string.Format相同的方式格式化消息。 提示:如果不添加任何侦听器,则仍然可以使用Dbgview.exe程序DebugView( Dbgview.exe )查看跟踪输出: http : Dbgview.exe