Questions tagged «c#»

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

9
返回语句应该在锁的内部还是外部?
我只是意识到在代码的某些地方,return语句位于锁内部,有时位于外部。哪一个是最好的? 1) void example() { lock (mutex) { //... } return myData; } 2) void example() { lock (mutex) { //... return myData; } } 我应该使用哪一个?
142 c#  .net  multithreading  mutex 

7
如何在Windows窗体上显示GIF动画(C#)
我有一个显示进度消息的表格,它显示了相当长的过程。这是对Web服务的调用,因此我无法真正在进度条上有意义地显示完成百分比。(我不太喜欢进度条的Marquee属性) 我想展示一个动画GIF,以使该过程具有某种活动的感觉(例如,文件从一台计算机飞到另一台计算机,例如Windows复制过程)。 你怎么做到这一点?

7
从x到y的协变量数组转换可能会导致运行时异常
我有一个s()的private readonly列表。稍后,我将s 添加到此列表,并将这些标签添加到如下所示:LinkLabelIList<LinkLabel>LinkLabelFlowLayoutPanel foreach(var s in strings) { _list.Add(new LinkLabel{Text=s}); } flPanel.Controls.AddRange(_list.ToArray()); Resharper向我显示警告:Co-variant array conversion from LinkLabel[] to Control[] can cause run-time exception on write operation。 请帮我弄清楚: 这是什么意思? 这是一个用户控件,不会被多个对象访问以设置标签,因此,保持这样的代码不会影响它。

9
从DateTime减去天
我的C#程序中有以下代码。 DateTime dateForButton = DateTime.Now; dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime 每当我运行它时,都会出现以下错误: 相加或相减的值将导致无法表示的DateTime。 参数名称:值 我以前从未见过此错误消息,也不知道为什么会看到它。从到目前为止我得到的答案中,我可以认为我可以在加法运算中使用-1来减去天,但是正如我的问题所示,我尝试做的并非如此。
142 c#  datetime 

11
使用C#中的一个ForEach语句迭代两个列表或数组
这只是为了常识: 如果我有两个,比如说List,我想用相同的foreach循环来迭代两个,我们能做到吗? 编辑 只是为了澄清,我想这样做: List<String> listA = new List<string> { "string", "string" }; List<String> listB = new List<string> { "string", "string" }; for(int i = 0; i < listA.Count; i++) listB[i] = listA[i]; 但是用foreach =)
142 c# 


12
如何获得有效的屏幕尺寸?
我正在寻找的是System.Windows.SystemParameters.WorkArea与窗口当前所在的监视器等效的控件。 澄清: 相关窗口WPF不是WinForm。
142 c#  wpf 

2
关于Task.Start(),Task.Run()和Task.Factory.StartNew()的用法
我只看到3个有关TPL使用的例程,它们执行相同的工作;这是代码: public static void Main() { Thread.CurrentThread.Name = "Main"; // Create a task and supply a user delegate by using a lambda expression. Task taskA = new Task( () => Console.WriteLine("Hello from taskA.")); // Start the task. taskA.Start(); // Output a message from the calling thread. Console.WriteLine("Hello from thread '{0}'.", …

6
如何知道HttpClient何时超时?
据我所知,没有办法知道具体是发生了超时。我是不是在正确的地方寻找东西,还是缺少更大的东西? string baseAddress = "http://localhost:8080/"; var client = new HttpClient() { BaseAddress = new Uri(baseAddress), Timeout = TimeSpan.FromMilliseconds(1) }; try { var s = client.GetAsync("").Result; } catch(Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.InnerException.Message); } 返回: 发生一个或多个错误。 任务已取消。

5
.NET Core 2.0中是否提供ConfigurationManager.AppSettings?
我有一个方法可以从我的配置文件中读取设置,如下所示: var value = ConfigurationManager.AppSettings[key]; 仅针对.NET Standard 2.0时,它编译良好。 现在我需要多个目标,因此我使用以下命令更新了项目文件: <TargetFrameworks>netcoreapp2.0;net461;netstandard2.0</TargetFrameworks> 但是现在,编译失败netcoreapp2.0并显示以下错误消息: Error CS0103 The name 'ConfigurationManager' does not exist in the current context (netcoreapp2.0) 另外,我创建了一个新的.NET Core 2.0控制台应用程序(这次仅针对.NET Core 2.0),但是同样,ConfigurationManager在命名空间下似乎也没有System.Configuration。 我很困惑,因为它在.NET Standard 2.0下可用,因此我希望它在.NET Core 2.0中可用,因为.NET Core 2.0符合.NET Standard 2.0。 我想念什么?

1
使用Moq验证方法调用
我对使用C#进行单元测试和学习使用Moq相当陌生。下面是我要测试的课程。 class MyClass { SomeClass someClass; public MyClass(SomeClass someClass) { this.someClass = someClass; } public void MyMethod(string method) { method = "test" someClass.DoSomething(method); } } class Someclass { public DoSomething(string method) { // do something... } } 以下是我的TestClass: class MyClassTest { [TestMethod()] public void MyMethodTest() { string action="test"; Mock<SomeClass> mockSomeClass …
142 c#  testing  methods  moq 

3
如何在Core 2.0中的ConfigurationBuilder中设置SetPath
如何在Core 2.0的ConfigurationBuilder中设置基本路径。 我用Google搜索,发现这个问题,这个来自微软的文档,以及2.0文档在线,但他们似乎使用的版本Microsoft.Extension.Configuration从1.0.0-beta8。 我想读appsettings.json。在Core 2.0中,有没有新的方法可以做到这一点? using System; using System.IO; using Microsoft.Extensions.Configuration; namespace ConsoleApp2 { class Program { public static IConfigurationRoot Configuration { get; set; } static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) // <== compile failing here .AddJsonFile("appsettings.json"); Configuration = builder.Build(); Console.WriteLine(Configuration.GetConnectionString("con")); Console.WriteLine("Press a key..."); Console.ReadKey(); …

6
字符串比较中忽略重音字母
我需要在C#中比较2个字符串,并将重音字母与非重音字母相同。例如: string s1 = "hello"; string s2 = "héllo"; s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase); s1.Equals(s2, StringComparison.OrdinalIgnoreCase); 这两个字符串必须相同(就我的应用程序而言),但是这两个语句的评估结果均为false。C#中有办法做到这一点吗?
141 c#  string  localization 

6
如何下载没有nuget.exe或Visual Studio扩展名的Nuget程序包?
如何下载NuGet软件包?我没有NuGet Visual Studio扩展或命令行程序nuget.exe。如何从网上下载.nupack文件?据我了解,我将能够从中提取.dll文件(带有7-zip)以照常使用。 我碰巧感兴趣的软件包是http://nuget.org/packages/Microsoft.Bcl.Async,但是我想知道一般如何做。 在Ruby的世界中,这很容易-RubyGems网站上的每个软件包页面都有指向.gem文件的下载链接,例如:https ://rubygems.org/gems/pony 关于NuGet的明显命运的争论在别处。我为什么回避这个问题并不重要。我不是唯一的一个。
141 c#  .net  visual-studio  nuget 

2
实体框架.Remove()与.DeleteObject()
您可以通过以下两种方法使用EF从数据库中删除项目。 EntityCollection.Remove方法 ObjectContext.DeleteObject方法 第一个在上EntityCollection,第二个在上ObjectContext。 什么时候应该使用? 一个人比另一个人偏爱吗? Remove()返回a bool并DeleteObject()返回void。

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.