Questions tagged «c#»

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

16
如何检查是否设置了标志组合的标志?
假设我有这个枚举: [Flags] enum Letters { A = 1, B = 2, C = 4, AB = A | B, All = A | B | C, } 要检查是否AB设置了例如我可以这样做: if((letter & Letters.AB) == Letters.AB) 有没有一种比以下方法更简单的方法来检查是否设置了组合标志常量的任何标志? if((letter & Letters.A) == Letters.A || (letter & Letters.B) == Letters.B) 例如,您可以将它换成&其他东西吗? 像这样的二进制东西不太稳定...
180 c#  enums  flags 

8
.NET:发送带有数据的POST和读取响应的最简单方法
令我惊讶的是,在.NET BCL中,我无法说出这么简单的事情: byte[] response = Http.Post ( url: "http://dork.com/service", contentType: "application/x-www-form-urlencoded", contentLength: 32, content: "home=Cosby&favorite+flavor=flies" ); 上面的假设代码使用数据进行HTTP POST,并从Post静态类的方法返回响应Http。 既然我们没有这么容易的事情,那么下一个最佳解决方案是什么? 如何发送带有数据的HTTP POST并获取响应的内容?

9
自动执行InvokeRequired代码模式
我已经痛苦地意识到,需要多长时间在事件驱动的GUI代码中编写以下代码模式,其中 private void DoGUISwitch() { // cruisin for a bruisin' through exception city object1.Visible = true; object2.Visible = false; } 变成: private void DoGUISwitch() { if (object1.InvokeRequired) { object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); })); } else { object1.Visible = true; object2.Visible = false; } } 这在C#中是一个尴尬的模式,既要记住也要键入。有没有人想出某种捷径或构造可以在某种程度上实现自动化?如果有一种方法可以将函数附加到执行此检查的对象而不必完成所有额外工作(如object1.InvokeIfNecessary.visible = true类型快捷方式)的方法,那将很酷。 先前的答案已经讨论了每次调用Invoke()都是不切实际的,即使这样,Invoke()语法效率低下,仍然难以处理。 那么,有人知道快捷方式吗?

14
将XML字符串转换为对象
我正在通过套接字接收XML字符串,并希望将它们转换为C#对象。 消息的形式为: <msg> <id>1</id> <action>stop</action> </msg> 我是.Net的新手,不确定执行此操作的最佳实践。我以前使用过Java的JAXB,但不确定是否存在类似的东西,或者是否会以其他方式处理。


12
何时使用IList和何时使用List
我知道IList是接口,而List是具体类型,但是我仍然不知道何时使用每个接口。我现在正在做的是,如果我不需要使用接口的Sort或FindAll方法。我对吗?有没有更好的方法来决定何时使用接口或具体类型?
179 c#  .net 

5
什么是C#.NET中的App.config?如何使用它?
我已经在C#.NET中完成了一个项目,其中我的数据库文件是Excel工作簿。由于连接字符串的位置在我的编码中是硬编码的,因此在我的系统中安装它没有问题,但是对于其他系统来说,是存在问题的。 应用程序设置完成后,是否有办法提示用户设置路径? 我得到的答案是“使用App.Config” ...谁能在这里告诉我什么是App.config以及如何在我的上下文中使用它?
179 c#  .net  app-config 

10
将对象转换为int的更好方法
这可能是微不足道的,但我想不出更好的方法来做到这一点。我有一个COM对象,该对象返回一个变体,该变体成为C#中的一个对象。我可以将其转换为int的唯一方法是 int test = int.Parse(string.Format("{0}", myobject)) 有没有更清洁的方法可以做到这一点?谢谢
179 c#  interop 

9
使用System.IO.Compression在内存中创建ZIP存档
我正在尝试使用一个简单的演示文本文件创建一个ZIP存档,MemoryStream如下所示: using (var memoryStream = new MemoryStream()) using (var archive = new ZipArchive(memoryStream , ZipArchiveMode.Create)) { var demoFile = archive.CreateEntry("foo.txt"); using (var entryStream = demoFile.Open()) using (var streamWriter = new StreamWriter(entryStream)) { streamWriter.Write("Bar!"); } using (var fileStream = new FileStream(@"C:\Temp\test.zip", FileMode.Create)) { stream.CopyTo(fileStream); } } 如果运行此代码,则会创建存档文件本身,但不会创建foo.txt。 但是,如果我MemoryStream直接用文件流替换,则会正确创建存档: using (var fileStream …
179 c#  .net  zip  compression  ziparchive 

15
如何在带有EF Core的ASP.NET Core中取消应用迁移
当我PM> Remove-Migration -context BloggingContext使用EF Core在带有ASP.NET Core项目的VS2015中运行时,出现以下错误: System.InvalidOperationException: The migration '20160703192724_MyFirstMigration' has already been applied to the database. Unapply it and try again. If the migration has been applied to other databases, consider reverting its changes using a new migration. at Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.RemoveMigration(String projectDir, String rootNamespace, Boolean force) at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.RemoveMigration(String contextType, Boolean …

14
C#中的哈希和盐密码
我刚刚浏览了DavidHayden的有关散列用户密码的文章之一。 真的我无法理解他想要达到的目标。 这是他的代码: private static string CreateSalt(int size) { //Generate a cryptographic random number. RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] buff = new byte[size]; rng.GetBytes(buff); // Return a Base64 string representation of the random number. return Convert.ToBase64String(buff); } private static string CreatePasswordHash(string pwd, string salt) { string saltAndPwd = String.Concat(pwd, …
178 c#  hash  passwords  salt 

3
使用Moq模拟单元测试的异步方法
我正在测试用于进行Web API调用的服务的方法。HttpClient如果我还本地运行Web服务(位于解决方案中的另一个项目中),则对单元测试使用正常工作就可以了。 但是,当我签入更改时,构建服务器将无法访问Web服务,因此测试将失败。 我为单元测试设计了一种解决方法,方法是创建一个IHttpClient接口并实现一个在应用程序中使用的版本。对于单元测试,我制作了一个模拟版本,其中包含一个模拟的异步post方法。这是我遇到问题的地方。我想HttpStatusResult为此特定测试返回确定。对于另一个类似的测试,我将返回不好的结果。 测试将运行,但永远不会完成。它挂在等待。我是异步编程,委托和Moq本身的新手,我一直在搜索SO和Google一段时间以学习新事物,但我似乎仍然无法克服这个问题。 这是我要测试的方法: public async Task<bool> QueueNotificationAsync(IHttpClient client, Email email) { // do stuff try { // The test hangs here, never returning HttpResponseMessage response = await client.PostAsync(uri, content); // more logic here } // more stuff } 这是我的单元测试方法: [TestMethod] public async Task QueueNotificationAsync_Completes_With_ValidEmail() { Email email …

14
有内置的方法可以比较集合吗?
我想在我的Equals方法中比较几个集合的内容。我有一个词典和一个IList。有内置的方法可以做到这一点吗? 编辑:我想比较两个字典和两个IList,所以我认为相等的含义很清楚-如果两个字典包含映射到相同值的相同键,则它们相等。
178 c#  .net  collections 

13
我可以在运行时加载.NET程序集并实例化仅知道名称的类型吗?
如果我只有DLL名称和类名称,而没有在项目中添加对程序集的引用,是否可以在运行时实例化对象?该类实现一个接口,因此一旦实例化该类,便将其强制转换为该接口。 程序集名称: 库.dll 类型名称: Company.Project.Classname 编辑:我没有DLL的绝对路径,所以Assembly.LoadFile将无法工作。DLL可能位于应用程序的根目录,system32中,甚至可能位于GAC中。
178 c#  assemblies 

15
C#中的枚举应该有自己的文件吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 2年前关闭。 改善这个问题 我有一个使用枚举的类,该枚举当前在其自己的文件中,这似乎很浪费。 关于将枚举放置在使用它们的文件的名称空间中的一般看法是什么?还是应该将枚举真正存在于自己的CS文件中? 编辑 我应该提到的是,尽管所讨论的类使用了这些枚举,但是外部调用者也是如此。换句话说,另一个类可以设置这些枚举。因此,它们不会在班级内部使用,否则此问题将变得毫无道理。
178 c#  coding-style  enums 

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.