Questions tagged «c#»

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


7
在C#中的特定时区中创建DateTime
我正在尝试创建一个单元测试,以测试时区在计算机上更改的情况,因为该时区已被错误地设置然后被更正。 在测试中,我需要能够在非本地时区中创建DateTime对象,以确保运行测试的人员可以成功地进行操作,而不管他们位于何处。 从DateTime构造函数中可以看到,我可以将TimeZone设置为本地时区,UTC时区或未指定。 如何创建具有特定时区(如PST)的DateTime?
162 c#  .net  datetime  timezone  .net-3.5 

23
Excel“外部表的格式不正确。”
我正在尝试使用下面显示的代码读取Excel(xlsx)文件。我得到“外部表不是预期的格式”。错误,除非我已经在Excel中打开了文件。换句话说,我必须先在Excel中打开文件,然后才能从C#程序中读取文件。xlsx文件在我们的网络上共享。如何读取文件而不必先打开它?谢谢 string sql = "SELECT * FROM [Sheet1$]"; string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\""; using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) { DataSet ds = new DataSet(); adaptor.Fill(ds); }

2
161803398是“特殊”号码吗?在Math.Random()内部
我怀疑答案是“ 因为数学 ”,但是我希望有人可以在基本层面上提供更多的见解... 今天,我在研究BCL源代码,看看我以前使用的某些类是如何实现的。之前我从未考虑过如何生成(伪)随机数,所以我决定看看它是如何完成的。 此处的完整源代码:http : //referencesource.microsoft.com/#mscorlib/system/random.cs#29 private const int MSEED = 161803398; 每次植入Random()类时都使用此MSEED值。 无论如何,我看到了这个“魔术数字”-161803398-我对为什么选择该数字没有最模糊的主意。它不是素数或2的幂,不是看似重要的数字的“一半”。我用二进制和十六进制格式查看了它,对我来说,它就像是一个数字。 我尝试在Google中搜索该号码,但未找到任何内容。
162 c#  .net  algorithm  random 

13
.NET配置(app.config / web.config / settings.settings)
我有一个.NET应用程序,它具有用于调试和发布版本的不同配置文件。例如,debug app.config文件指向已启用调试的开发SQL Server,发布目标指向实时SQL Server。还有其他设置,其中一些在调试/发行版中有所不同。 我目前使用两个单独的配置文件(debug.app.config和release.app.config)。我在项目上有一个构建事件,它说如果这是发行版本,则将release.app.config复制到app.config,否则将debug.app.config复制到app.config。 问题是该应用程序似乎是从settings.settings文件中获取其设置的,所以我必须在Visual Studio中打开settings.settings,然后提示我设置已更改,因此我接受更改,保存settings.settings并具有重建以使其使用正确的设置。 是否有更好/推荐/首选的方法来达到类似的效果?或者同样,我是否完全解决了这个错误,还有更好的方法吗?

9
协方差和反方差的真实世界示例
我在理解如何在现实世界中使用协方差和逆方差时遇到了一些麻烦。 到目前为止,我所看到的唯一示例是相同的旧数组示例。 object[] objectArray = new string[] { "string 1", "string 2" }; 如果能看到其他地方使用的示例,那么很高兴能在开发期间使用它。
162 c#  c#-4.0  covariance 


4
ASP.NET Identity的默认密码哈希器-它如何工作且安全?
我想知道MVC 5和ASP.NET Identity Framework随附的UserManager中默认实现的密码哈希器是否足够安全?如果可以的话,如果您能向我解释一下它是如何工作的? IPasswordHasher接口看起来像这样: public interface IPasswordHasher { string HashPassword(string password); PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword); } 如您所见,它并不需要花很多精力,但是在该线程中提到了这一点:“ Asp.net身份密码哈希 ”确实在后台添加了盐。所以我想知道它是如何做到的?这种盐从哪里来? 我担心的是盐是静态的,使其非常不安全。

7
在WebAPI客户端中,每个调用创建一个新的HttpClient的开销是多少?
HttpClientWebAPI客户端的生存期应该是什么? 拥有HttpClient多个通话的实例更好吗? 创建和处理HttpClient每个请求的开销是多少,如以下示例所示(摘自http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from- a-net-client): using (var client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:9000/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // New code: HttpResponseMessage response = await client.GetAsync("api/products/1"); if (response.IsSuccessStatusCode) { Product product = await response.Content.ReadAsAsync<Product>(); Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category); } }

2
将字符串数组转换为List <string>
我已经看过使用.ToList()数组类型完成此操作的示例,这似乎仅在.Net 3.5+中可用。我正在当前无法升级的ASP.NET项目上使用.NET Framework 2.0,所以我想知道:还有其他解决方案吗?一个比循环遍历数组并将每个元素添加到此List更优雅的方法(这没问题;我只是想知道是否有更好的解决方案用于学习)? string[] arr = { "Alpha", "Beta", "Gamma" }; List&lt;string&gt; openItems = new List&lt;string&gt;(); foreach (string arrItem in arr) { openItems.Add(arrItem); } 如果必须这样做,是否有办法在将数组复制到列表中后从内存中取消分配该数组?
162 c#  c#-2.0 

12
如何测试类型是否为原始
我有一段代码将类型序列化为Html标签。 Type t = typeof(T); // I pass &lt;T&gt; in as a paramter, where myObj is of type T tagBuilder.Attributes.Add("class", t.Name); foreach (PropertyInfo prop in t.GetProperties()) { object propValue = prop.GetValue(myObj, null); string stringValue = propValue != null ? propValue.ToString() : String.Empty; tagBuilder.Attributes.Add(prop.Name, stringValue); } 这个伟大的工程,但我希望它只是对基本类型,像这样做int,double,bool等,以及其他类型的不是原始的,但可以像容易序列化string。我希望它忽略其他所有内容,例如列表和其他自定义类型。 谁能建议我该怎么做?还是我需要在某个地方指定要允许的类型,然后打开属性的类型以查看是否允许?有点杂乱,所以如果我有一个更简洁的方法,那就太好了。

4
异步/等待与BackgroundWorker
在过去的几天中,我测试了.net 4.5和c#5的新功能。 我喜欢它的新异步/等待功能。之前,我曾使用BackgroundWorker通过响应UI在后台处理更长的进程。 我的问题是:有了这些不错的新功能之后,什么时候应该使用async / await以及什么时候使用BackgroundWorker?两者都有哪些常见方案?

8
将Stream转换为String并返回……我们缺少什么?
我想将对象序列化为字符串,然后返回。 我们使用protobuf-net将对象成功转换为Stream并返回。 但是,流到字符串并返回...不是很成功。经过StreamToString和之后StringToStream,新协议Stream不会被protobuf-net反序列化;它引发一个Arithmetic Operation resulted in an Overflow异常。如果我们反序列化原始流,它将起作用。 我们的方法: public static string StreamToString(Stream stream) { stream.Position = 0; using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { return reader.ReadToEnd(); } } public static Stream StringToStream(string src) { byte[] byteArray = Encoding.UTF8.GetBytes(src); return new MemoryStream(byteArray); } 我们的示例代码使用这两个: MemoryStream stream = new MemoryStream(); …

6
在ASP.NET Core MVC中选择标签助手
我在ASP.NET Core中需要选择标记帮助器的帮助。 我有一个要绑定到选择标签助手的员工列表。我的员工处于List&lt;Employee&gt; EmployeesList,选定的价值将归入EmployeeId财产。我的视图模型如下所示: public class MyViewModel { public int EmployeeId { get; set; } public string Comments { get; set; } public List&lt;Employee&gt; EmployeesList {get; set; } } 我的员工班级是这样的: public class Employee { public int Id { get; set; } public string FullName { get; set; } } 我的问题是我如何告诉我的选择标签助手在下拉列表中Id显示FullName时将其用作值? …


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.