Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

9
确定C#中字符串的编码
有什么方法可以确定C#中的字符串编码吗? 说,我有一个文件名字符串,但是我不知道它是以Unicode UTF-16还是系统默认编码编码的,我如何找出来?
127 c#  string  encoding 

2
具有动态变量如何影响性能?
我对dynamicC#的性能有疑问。我读过dynamic使编译器再次运行,但是它做什么呢? 是否必须使用dynamic变量作为参数重新编译整个方法,还是仅使用动态行为/上下文重新编译整个方法? 我注意到使用dynamic变量会使简单的for循环速度降低2个数量级。 我玩过的代码: internal class Sum2 { public int intSum; } internal class Sum { public dynamic DynSum; public int intSum; } class Program { private const int ITERATIONS = 1000000; static void Main(string[] args) { var stopwatch = new Stopwatch(); dynamic param = new Object(); DynamicSum(stopwatch); SumInt(stopwatch); SumInt(stopwatch, …
127 c#  performance  dynamic 

7
log4net层次结构和日志记录级别
这个网站说 可以为记录器分配级别。级别是log4net.Core.Level类的实例。按照优先级递增的顺序定义了以下级别: 所有 调试 信息 警告 错误 致命 关 DEBUG的优先级最低,而ERROR的优先级更高。 题 如果我设置了最小和最大示例DEBUG和ERROR,它将打印所有DEBUG,INFO,WARN和ERROR。不使用最小和最大过滤器。如果我指定错误(日志记录级别=错误),它将包括DEBUG,INFO和WARN <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR"/> <param name="LevelMax" value="ERROR"/> </filter> 代替最小和最大过滤器。是否可以配置一个级别并在其下面包括所有其他级别进行日志记录。 示例-将级别设置为错误,它将包括调试,信息,警告和错误。log4net是否可能? 根据评论之一发布log4net配置: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections > <log4net debug="true"> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <layout type="log4net.Layout.XMLLayout" /> --> <param name="File" value="TestLog.log" /> <param …


10
如何在ASP.NET Core中的任何类中访问Configuration?
我已经阅读了ASP.NET Core上的配置文档。文档说您可以从应用程序中的任何位置访问配置。 以下是模板创建的Startup.cs public class Startup { public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); if (env.IsEnvironment("Development")) { // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately. builder.AddApplicationInsightsSettings(developerMode: true); } builder.AddEnvironmentVariables(); Configuration …

19
如何检查有效的Base64编码的字符串
除了只是尝试转换字符串并查看是否存在错误,C#中是否有其他方法可以查看字符串是否为Base 64编码?我有这样的代码: // Convert base64-encoded hash value into a byte array. byte[] HashBytes = Convert.FromBase64String(Value); 我想避免如果值不是有效的基数64字符串,则会发生“基数64字符串中的无效字符”异常。我只想检查并返回false而不是处理异常,因为我希望有时此值不会是基数为64的字符串。在使用Convert.FromBase64String函数之前,有什么方法可以检查吗? 谢谢! 更新: 感谢您的所有回答。这是迄今为止您可以全部使用的扩展方法,似乎可以确保您的字符串毫无例外地通过Convert.FromBase64String。转换为基数64时,.NET似乎会忽略所有尾随空格,因此“ 1234”有效,“ 1234”有效 public static bool IsBase64String(this string s) { s = s.Trim(); return (s.Length % 4 == 0) && Regex.IsMatch(s, @"^[a-zA-Z0-9\+/]*={0,3}$", RegexOptions.None); } 对于那些对测试性能,捕获性能和异常性能感到疑惑的人来说,在大多数情况下,对于这种基于64位的东西,检查它要比捕获异常更快,直到达到一定长度为止。长度越小越快 在我非常不科学的测试中:对于字符长度100,000-110000的10000次迭代,第一次进行测试的速度提高了2.7倍。 对于1000个字符长度为1到16个字符的迭代,总共进行了16,000次测试,速度提高了10.9倍。 我敢肯定,使用基于异常的方法进行测试会变得更好。我只是不知道那是什么时候。
127 c#  validation  base64 

3
OpenFileDialog中的多个文件扩展名
如何在一组内使用多个文件扩展名OpenFileDialog?我已经Filter = "BMP|*.bmp|GIF|*.gif|JPG|*.jpg|PNG|*.png|TIFF|*.tiff" 创建了组,因此JPG是* .jpg和* .jpeg,TIFF是* .tif和* .tiff以及“所有图形类型”吗?我怎样才能做到这一点?


24
IIS中未加载CSS,图像,JS
我的所有应用程序都运行良好,但是突然间,IIS下的所有站点都没有加载CSS,图像,脚本。它重定向到登录页面。 如果我登录,效果很好。例如mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png 在我的本地计算机上,无需登录即可正常工作。
126 c#  asp.net-mvc  iis 


14
为什么赋值语句返回值?
这是允许的: int a, b, c; a = b = c = 16; string s = null; while ((s = "Hello") != null) ; 据我了解,赋值s = ”Hello”;应该只导致“Hello”被赋值给s,但操作不应返回任何值。如果是这样,((s = "Hello") != null)则将产生错误,因为null将其与没有进行比较。 允许赋值语句返回值的背后原因是什么?
126 c#  syntax 

1
如何通过XElement放置属性
我有以下代码: XElement EcnAdminConf = new XElement("Type", new XElement("Connections", new XElement("Conn"), // Conn.SetAttributeValue("Server", comboBox1.Text); // Conn.SetAttributeValue("DataBase", comboBox2.Text))), new XElement("UDLFiles"))); // Conn. 如何添加属性Conn?我想添加标记为注释的属性,但是如果Conn在定义后尝试将其设置为on EcnAdminConf,则这些属性将不可见。 我想以某种方式设置它们,以便XML看起来像这样: <Type> <Connections> <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> </Connections> <UDLFiles /> </Type>
126 c#  xml  linq-to-xml 

11
LINQ to Entities无法识别方法'System.String ToString()',并且该方法无法转换为商店表达式
我正在将一些东西从一台mysql服务器迁移到一台sql服务器,但是我不知道如何使此代码起作用: using (var context = new Context()) { ... foreach (var item in collection) { IQueryable<entity> pages = from p in context.pages where p.Serial == item.Key.ToString() select p; foreach (var page in pages) { DataManager.AddPageToDocument(page, item.Value); } } Console.WriteLine("Done!"); Console.Read(); } 当它进入第二秒时,foreach (var page in pages)它抛出一个异常,说: LINQ to Entities无法识别方法'System.String ToString()',该方法无法转换为商店表达式。 …
126 c#  mysql  sql  linq 

5
调试自动属性
有什么方法可以在自动实现的属性中的setter / getter上设置断点? int Counter { get; set; } 除了将其更改为标准属性(我是通过这种方式进行的,但要这样做,我必须更改并重新编译整个项目)

5
Double的“ ==”运算符的定义
由于某种原因,我偷偷摸摸该类的.NET Framework源代码Double,发现其中的声明==为: public static bool operator ==(Double left, Double right) { return left == right; } 相同的逻辑适用于每个操作员。 这样定义的意义何在? 它是如何工作的? 为什么不创建无限递归?
126 c#  .net  language-lawyer 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.