Questions tagged «c#»

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

15
根据字符串计算MD5哈希
我使用以下C#代码从字符串中计算MD5哈希值。它运作良好,并生成一个32个字符的十六进制字符串,如下所示: 900150983cd24fb0d6963f7d28e17f72 string sSourceData; byte[] tmpSource; byte[] tmpHash; sSourceData = "MySourceData"; //Create a byte array from source data. tmpSource = ASCIIEncoding.ASCII.GetBytes(sSourceData); tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpSource); // and then convert tmpHash to string... 有没有办法使用像这样的代码来生成16个字符的十六进制字符串(或12个字符的字符串)?32个字符的十六进制字符串很好,但是我认为客户输入代码会很无聊!
131 c#  md5 

8
调用调用中的匿名方法
在想要在Control.Invoke中匿名调用委托的语法上有麻烦。 我们尝试了许多不同的方法,但都无济于事。 例如: myControl.Invoke(delegate() { MyMethod(this, new MyEventArgs(someParameter)); }); 其中someParameter在此方法本地 以上将导致编译器错误: 无法将匿名方法转换为类型“ System.Delegate”,因为它不是委托类型

17
在C#中获取机器MAC地址的可靠方法
无论使用C#运行的操作系统如何,我都需要一种获取机器的MAC地址的方法。应用程序将需要在XP / Vista / Win7 32和64位以及这些OS上运行,但默认使用外语。许多C#命令和OS查询不适用于整个OS。有任何想法吗?我一直在抓取“ ipconfig / all”的输出,但这是非常不可靠的,因为每台计算机上的输出格式都不同。 谢谢
131 c#  mac-address 


7
使用C#获取时间(以毫秒为单位)
我正在编写一个程序,其中需要以毫秒为单位。到时间,我的意思是一个永远不会等于自己的数字,并且总是比第二秒大1000个数字。我试过转换DateTime.Now为a TimeSpan并TotalMilliseconds从中获取...,但我听说它并不十分准确。 有没有更简单的方法可以做到这一点?

8
LINQ to SQL:在多个列上进行多个联接。这可能吗?
鉴于: TABLE_1具有以下列的列命名的表: ID ColumnA ColumnB ColumnC 我有SQL查询,其中TABLE_1基于关闭的两次自己加入ColumnA,ColumnB,ColumnC。该查询可能看起来像这样: Select t1.ID, t2.ID, t3.ID From TABLE_1 t1 Left Join TABLE_1 t2 On t1.ColumnA = t2.ColumnA And t1.ColumnB = t2.ColumnB And t1.ColumnC = t2.ColumnC Left Join TABLE_1 t3 On t2.ColumnA = t3.ColumnA And t2.ColumnB = t3.ColumnB And t2.ColumnC = t3.ColumnC ... and query continues …

8
序列中没有元素?
我目前在两个地方使用一个查询来从数据库中获取一行。 BlogPost post = (from p in dc.BlogPosts where p.BlogPostID == ID select p).Single(); 在检索将数据放入文本框中的行时,该查询很好,但是当用于检索该行以对其进行编辑并将其放回数据库时,它将返回错误“序列不包含任何元素”。我不明白为什么它可能在一个实例中找到一个合适的行,而在另一个实例中找不到。 (使用ASP.NET MVC和LINQ)
131 c#  linq 

5
异步等待返回任务
有人可以解释一下同步方法意味着什么吗?如果我尝试将方法更改为,async则VS会抱怨它。 这有效: public Task MethodName() { return Task.FromResult<object>(null); } 这不起作用: public async Task MethodName() { return Task.FromResult<object>(null); } 所以基本上我想知道这到底意味着什么: Task.FromResult<object>(null);



8
在运行时更改默认的app.config
我有以下问题: 我们有一个加载模块(附加组件)的应用程序。这些模块可能需要在app.config中输入(例如WCF配置)。因为模块是动态加载的,所以我不想在应用程序的app.config文件中包含这些条目。 我想做的是以下几点: 在内存中创建一个新的app.config,其中包含模块中的config部分 告诉我的应用程序使用该新的app.config 注意:我不想覆盖默认的app.config! 它应该透明地工作,以便例如ConfigurationManager.AppSettings使用该新文件。 在评估此问题期间,我想到了与此处提供的解决方案相同的解决方案:使用nunit重新加载app.config。 不幸的是,它似乎没有任何作用,因为我仍然从正常的app.config中获取数据。 我使用以下代码对其进行了测试: Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]); Console.WriteLine(Settings.Default.Setting); var combinedConfig = string.Format(CONFIG2, CONFIG); var tempFileName = Path.GetTempFileName(); using (var writer = new StreamWriter(tempFileName)) { writer.Write(combinedConfig); } using(AppConfig.Change(tempFileName)) { Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]); Console.WriteLine(Settings.Default.Setting); } 它打印两次相同的值,尽管它combinedConfig包含普通app.config之外的其他值。
130 c#  .net  app-config 

13
如何查看C#编译器生成的MSIL / CIL?为什么称为汇编?
我是.NET C#编程的新手。我正在看几本书。据说不是直接将其编译为二进制代码(本机代码)。高级代码将转换为中间语言(称为MSIL,也称为CIL)。但是当我编译时,我得到一个exe / Dll文件。 这些MSIL / CIL是否包含在这些exe / dll文件中? 我想看一下中间语言代码。只是为了了解它的存在。怎么看? 他们称此exe / dll文件为assembly。他们是否使用这个“花哨的单词”只是为了将它们与包含二进制代码(本机代码)的exe / dll文件区分开?
130 c#  .net  assemblies 

5
SqlDataAdapter与SqlDataReader
使用SqlDataAdapter和SqlDataReader从数据库获取数据之间有什么区别? 我正在专门研究它们的优缺点以及它们的速度和内存性能。 谢谢
130 c#  .net 

3
.Net 4.5中的异步HttpClient对于密集负载应用程序是否是错误的选择?
我最近创建了一个简单的应用程序来测试HTTP调用吞吐量,该应用程序可以以异步方式与传统的多线程方法生成。 该应用程序能够执行预定义数量的HTTP调用,最后显示执行它们所需的总时间。在我的测试期间,所有HTTP调用都对我的本地IIS服务器进行,​​他们检索了一个小的文本文件(大小为12个字节)。 下面列出了异步实现的代码中最重要的部分: public async void TestAsync() { this.TestInit(); HttpClient httpClient = new HttpClient(); for (int i = 0; i < NUMBER_OF_REQUESTS; i++) { ProcessUrlAsync(httpClient); } } private async void ProcessUrlAsync(HttpClient httpClient) { HttpResponseMessage httpResponse = null; try { Task<HttpResponseMessage> getTask = httpClient.GetAsync(URL); httpResponse = await getTask; Interlocked.Increment(ref _successfulCalls); } …

17
默认字符串初始化:NULL还是为空?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我一直将字符串初始化为NULL,以为NULL表示缺少值,而“”或String.Empty是有效值。我最近看到了更多示例代码,其中String.Empty被视为默认值或不代表任何值。这让我感到奇怪,在c#中新添加的可为null的类型似乎使我们通过不使用NULL来表示“无值”来向字符串迈进。 您将什么用作默认的初始值设定项?为什么? 编辑:根据答案,我进一步思考 避免错误处理如果该值不应该为null,为什么NULL首先将其设置为?也许最好在错误发生的地方识别错误,而不是将错误掩盖在整个代码库中? 避免空检查如果您厌倦了在代码中进行空检查,那么抽象空检查是否更好?也许包装(或扩展!)字符串方法以使其NULL安全?如果您经常使用String.Empty并且null出现在系统中会NULL怎样,您是否仍会开始添加检查呢? 我不禁要回到懒惰的观点。如果您使用''而不是null在他的数据库中,那么任何DBA都会给您九种愚蠢的拍击方式。我认为相同的原则也适用于编程,应该有人来鼓吹那些使用String.Empty而不是NULL不代表任何价值的头脑。 相关问题 在C#中,我应该使用string.Empty还是String.Empty或“”? String.Empty和“”和有什么不一样 是否为空或空字符串以表示表列中没有数据?
130 c# 

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.