Questions tagged «c#»

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

6
将Newtonsoft.Json.Linq.JArray转换为特定对象类型的列表
我有以下类型的变量{Newtonsoft.Json.Linq.JArray}。 properties["Value"] {[ { "Name": "Username", "Selected": true }, { "Name": "Password", "Selected": true } ]} 我想做到的是将其转换为List<SelectableEnumItem>那里SelectableEnumItem是以下类型: public class SelectableEnumItem { public string Name { get; set; } public bool Selected { get; set; } } 我是编程的新手,我不确定这是否可行。工作示例的任何帮助将不胜感激。
236 c#  json.net 

15
如何生成和验证软件许可证密钥?
我目前正在开发产品(使用C#开发),该产品可免费下载和安装,但版本非常有限。要访问所有功能,用户必须支付许可费并获得密钥。然后,该密钥将输入到应用程序中以“解锁”完整版本。 由于通常使用这样的许可证密钥,我想知道: 通常如何解决? 如何生成密钥,应用程序如何对其进行验证? 我还应该如何避免让密钥在Internet上发布并被尚未支付许可证的其他人使用(该密钥基本上不是“他们的”密钥)。 我想我也应该以某种方式将密钥绑定到应用程序的版本,以便可以为功能版本中的新密钥收费。 在这种情况下,我还有什么需要考虑的?
236 c#  license-key 

8
为什么Boolean.ToString输出“ True”而不是“ true”
true.ToString() false.toString(); Output: True False 是否有正当理由是“真实”而不是“真实”?当编写XML时,它会中断,因为XML的布尔类型是小写,并且也不兼容C#的true / false(尽管不确定CLS)。 更新资料 这是我在C#中解决问题的一种非常骇人的方法(用于XML) internal static string ToXmlString(this bool b) { return b.ToString().ToLower(); } 当然,这会在堆栈中增加1种方法,但是会在各处删除ToLowers()。
235 c#  .net  boolean 


4
在字典中添加新项或更新现有项的方法
在某些旧代码中,我看到了以下扩展方法,以方便添加新的键值项或更新值(如果键已存在)。 方法1(旧版代码)。 public static void CreateNewOrUpdateExisting<TKey, TValue>( this IDictionary<TKey, TValue> map, TKey key, TValue value) { if (map.ContainsKey(key)) { map[key] = value; } else { map.Add(key, value); } } 虽然,我已经检查了map[key]=value 做完全相同的工作。也就是说,此方法可以用下面的方法2代替。 方法2。 public static void CreateNewOrUpdateExisting<TKey, TValue>( this IDictionary<TKey, TValue> map, TKey key, TValue value) { map[key] = value; } …
235 c#  dictionary 

7
如何从Json序列化中排除属性
我有一个要序列化的DTO类 Json.Serialize(MyClass) 如何排除它的公共财产? (它必须是公共的,因为我在其他地方的代码中使用了它)
234 c#  json 

2
为什么检查字典是否包含键而不是捕获异常(如果没有包含键)会更快呢?
想象一下代码: public class obj { // elided } public static Dictionary<string, obj> dict = new Dictionary<string, obj>(); 方法一 public static obj FromDict1(string name) { if (dict.ContainsKey(name)) { return dict[name]; } return null; } 方法2 public static obj FromDict2(string name) { try { return dict[name]; } catch (KeyNotFoundException) { return null; …

6
LINQ查询以选择前五名
我有一个LINQ查询: var list = from t in ctn.Items where t.DeliverySelection == true && t.Delivery.SentForDelivery == null orderby t.Delivery.SubmissionDate select t; 如何修改此查询以从数据库中仅选择五个结果?
234 c#  linq 

11
字符串的通用类型转换
我有一个要用于存储另一个类的“属性”的类。这些属性仅具有名称和值。理想情况下,我希望能够添加类型化的属性,以便返回的“值”始终是我想要的类型。 该类型应始终为原始类型。此类继承了一个抽象类,该抽象类基本上将名称和值存储为字符串。这个子类将为基类增加一些类型安全性(并为我节省一些转换)。 因此,我创建了一个(大致)这样的类: public class TypedProperty<DataType> : Property { public DataType TypedValue { get { // Having problems here! } set { base.Value = value.ToString();} } } 所以问题是: 是否有“通用”方式将字符串转换回原始类型? 我似乎找不到任何通用的接口来转换转换(像ITryParsable这样的东西会是理想的!)。

2
异步编程和多线程有什么区别?
我认为它们基本上是同一回事–编写在处理器之间(在具有2个以上处理器的机器上)将任务分割的程序。然后,我正在阅读this,它说: 异步方法旨在作为非阻塞操作。在等待任务运行时,异步方法中的等待表达式不会阻塞当前线程。取而代之的是,表达式将方法的其余部分作为继续进行签名,并将控制权返回给异步方法的调用者。 async和await关键字不会导致创建其他线程。异步方法不需要多线程,因为异步方法不会在自己的线程上运行。该方法在当前同步上下文上运行,并且仅在该方法处于活动状态时才在线程上使用时间。您可以使用Task.Run将受CPU约束的工作移至后台线程,但是后台线程对仅等待结果可用的进程没有帮助。 我想知道是否有人可以帮我翻译成英文。似乎在异步性(是一个词?)和线程之间进行了区分,这意味着您可以拥有一个具有异步任务但没有多线程的程序。 现在,我了解了异步任务的想法,例如pg上的示例。乔恩·斯基特(Jon Skeet)的《C#深度》第 467页,第三版 async void DisplayWebsiteLength ( object sender, EventArgs e ) { label.Text = "Fetching ..."; using ( HttpClient client = new HttpClient() ) { Task<string> task = client.GetStringAsync("http://csharpindepth.com"); string text = await task; label.Text = text.Length.ToString(); } } 该async关键字的意思是“ 这个功能,无论何时它被调用时,不会在这是需要的一切它的完成被称为它的呼叫后,上下文调用。” 换句话说,将其写在某些任务的中间 int x = …


30
从C#读取Excel文件
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 是否有免费或开放源代码库可直接从C#程序读取Excel文件(.xls)? 不必太花哨,只需选择一个工作表并以字符串形式读取数据。到目前为止,我一直在使用Excel的“导出到Unicode文本”功能,并分析生成的(制表符分隔)文件,但是我想消除手动步骤。
233 c#  .net  excel  ms-office 

2
为什么处理排序数组要比未排序数组慢?
我有500000个随机生成的Tuple<long,long,string>对象的列表,在这些对象上执行简单的“之间”搜索: var data = new List<Tuple<long,long,string>>(500000); ... var cnt = data.Count(t => t.Item1 <= x && t.Item2 >= x); 当我生成随机数组并为100个随机生成的值运行搜索时x,搜索将在大约四秒钟内完成。知道排序确实会对搜索产生很大的影响,但是,我决定在运行100次搜索之前先对数据进行排序Item1,然后再按,再按Item2,最后按Item3- 进行排序。由于分支预测,我希望排序后的版本执行得更快:我的想法是,一旦到达Item1 == x,所有进一步的检查t.Item1 <= x都会正确地预测分支为“ no take”,从而加快分支的尾部。搜索。令我惊讶的是,在排序数组上进行搜索的时间是原来的两倍! 我尝试切换实验顺序,并为随机数生成器使用了不同的种子,但是效果是一样的:在未排序的数组中搜索的速度几乎是在同一数组中搜索速度的两倍,但是排序! 有谁能很好地解释这种奇怪的影响?我测试的源代码如下;我正在使用.NET 4.0。 private const int TotalCount = 500000; private const int TotalQueries = 100; private static long NextLong(Random r) { var data …

10
将位图转换为字节数组
使用C#,有没有更好的方式来在Windows转换Bitmap到一个byte[]比保存到临时文件和读取使用的结果FileStream?
233 c#  bitmap 

7
在C#中按引用或值传递对象
在C#中,我一直认为非原始变量是通过引用传递的,原始值是通过值传递的。 因此,当将任何非原始对象传递给方法时,对该方法中的对象执行的任何操作都会影响要传递的对象。(C#101的东西) 但是,我注意到当我传递System.Drawing.Image对象时,似乎不是这样吗?如果我将system.drawing.image对象传递给另一个方法,然后将图像加载到该对象上,然后让该方法超出范围并返回到调用方法,则该图像未加载到原始对象上吗? 为什么是这样?

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.