Questions tagged «c#»

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

5
C#ASP.NET单一登录实现
作为下一个版本的一部分,我的任务是为客户实施单点登录。流程如下: 用户使用学校提供给他/她的学生ID /密码登录到学校的主门户系统。 用户单击指向我公司产品的链接。 用户将被自动带到仪表板页面,就像他们刚刚通过我们网站上的登录表单登录一样。 因此,可以通过两种机制对用户进行身份验证到我们的网站中: 进入产品主页,并使用存储在本地系统中的电子邮件/密码登录。 在学生已经使用学生ID和密码登录到学校主系统的情况下,使用单点登录。 如果我们的产品是在ASP.NET中实现的(而不是Java / Ruby),那么我们应该使用CAS,JOSSO还是其他一些第三方单点登录产品?还是有.NET环境可用的东西,对我们作为.NET公司而言,这会更简单?


12
如何水平打印数组的内容?
为什么控制台窗口不水平而不是垂直打印阵列内容? 有办法改变吗? 如何使用a而不是垂直显示数组内容Console.WriteLine()? 例如: int[] numbers = new int[100] for(int i; i < 100; i++) { numbers[i] = i; } for (int i; i < 100; i++) { Console.WriteLine(numbers[i]); }
77 c#  .net  arrays 

8
等待异步Void方法调用进行单元测试
我有一个看起来像这样的方法: private async void DoStuff(long idToLookUp) { IOrder order = await orderService.LookUpIdAsync(idToLookUp); // Close the search IsSearchShowing = false; } //Other stuff in case you want to see it public DelegateCommand<long> DoLookupCommand{ get; set; } ViewModel() { DoLookupCommand= new DelegateCommand<long>(DoStuff); } 我正在尝试像这样进行单元测试: [TestMethod] public void TestDoStuff() { //+ Arrange myViewModel.IsSearchShowing …

2
连锁且易失
我有一个用来表示状态的变量。可以从多个线程对其进行读写。 我正在使用Interlocked.Exchange并对其Interlocked.CompareExchange进行更改。但是我正在从多个线程中读取它。 我知道volatile可以用来确保变量不在本地缓存,但始终直接从内存中读取。 但是,如果我将变量设置为volatile,那么它将生成有关使用volatile并使用ref传递给Interlocked方法的警告。 我想确保每个线程都在读取变量的最新值,而不是某些缓存的版本,但是我不能使用volatile。 有一个,Interlocked.Read 但它适用于64位类型,并且在紧凑型框架上不可用。它的文档说,32位类型不需要它,因为它们已经在单个操作中执行过。 如果您使用互锁方法进行所有访问,则互联网上有一些声明不需要波动。但是,您无法使用Interlocked方法读取32位变量,因此无法对所有访问使用Interlocked方法。 有什么方法可以在不使用锁的情况下完成对变量的线程安全读取和写入操作?
77 c#  .net  mono 

15
如何在字符串数组中搜索字符串
我需要在字符串数组中搜索一个字符串。我不想使用任何循环 string [] arr = {"One","Two","Three"}; string theString = "One" 我需要检查arr中是否存在theString变量。
77 c#  asp.net 

26
web-api POST正文对象始终为null
我仍在学习Web API,因此,如果我的问题听起来很愚蠢,请原谅我。 我在我的StudentController: public HttpResponseMessage PostStudent([FromBody]Models.Student student) { if (DBManager.createStudent(student) != null) return Request.CreateResponse(HttpStatusCode.Created, student); else return Request.CreateResponse(HttpStatusCode.BadRequest, student); } 为了测试它是否有效,我使用Google Chrome的扩展程序“ Postman”来构造HTTP POST请求以对其进行测试。 这是我的原始POST请求: POST /api/Student HTTP/1.1 Host: localhost:1118 Content-Type: application/json Cache-Control: no-cache {"student": [{"name":"John Doe", "age":18, "country":"United States of America"}]} student应该是一个对象,但是当我调试应用程序时,API会接收到该student对象,但内容始终是null。

3
ASP.NET Core中Program.Main中的访问环境名称
使用ASP.NET Mvc Core,我需要将开发环境设置为使用https,因此我Main在Program.cs中的方法中添加了以下内容: var host = new WebHostBuilder() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .UseKestrel(cfg => cfg.UseHttps("ssl-dev.pfx", "Password")) .UseUrls("https://localhost:5000") .UseApplicationInsights() .Build(); host.Run(); 如何在此处访问托管环境,以便可以有条件地设置协议/端口号/证书? 理想情况下,我将只使用CLI来像这样操纵主机环境: dotnet run --server.urls https://localhost:5000 --cert ssl-dev.pfx password 但是似乎没有从命令行使用证书的方法。

2
为什么我的ClaimsIdentity IsAuthenticated始终为false(对于Web api授权过滤器)?
在一个Web API项目中,我替代了常规的身份验证过程来检查令牌。代码看起来像这样: if ( true ) // validate the token or whatever here { var claims = new List<Claim>(); claims.Add( new Claim( ClaimTypes.Name, "MyUser" ) ); claims.Add( new Claim( ClaimTypes.NameIdentifier, "MyUserID" ) ); claims.Add( new Claim( ClaimTypes.Role, "MyRole" ) ); var claimsIdentity = new ClaimsIdentity( claims ); var principal = …

12
C#真的比说C ++慢吗?
我一直在想这个问题已有一段时间了。 当然,C#中有些事情并未针对速度进行优化,因此使用这些对象或语言调整(如LinQ)可能会导致代码变慢。 但是,如果您不使用这些调整中的任何一项,而只是比较C#和C ++中的相同代码(将一个代码转换为另一个代码很容易)。真的会慢很多吗? 我看到的比较表明,在某些情况下C#可能甚至更快,因为从理论上讲,JIT编译器应实时优化代码并获得更好的结果: 托管还是非托管? 我们应该记住,JIT编译器是实时编译代码的,但这是1倍的开销,同一代码(一旦到达并编译)就不需要在运行时再次编译。 除非您创建并销毁了数千个对象(例如使用String而不是StringBuilder),否则GC也不会增加很多开销。而且在C ++中这样做也很昂贵。 我想提出的另一点是.Net中引入的DLL之间的更好的通信。.Net平台的通信要比基于托管COM的DLL更好。 我看不出为什么语言应该变慢的任何内在原因,而且我真的不认为C#比C ++慢(无论是经验还是缺乏很好的解释)。 那么,用C#编写的相同代码的一部分会比用C ++编写的相同代码慢吗? 如果是这样,那为什么呢? 其他一些参考资料(稍加讨论,但没有解释WHY): 如果C#比C ++慢,为什么还要使用C#?
76 c#  c++  performance 

12
在ToString()之前检查null
这是场景... if (entry.Properties["something"].Value != null) attribs.something = entry.Properties["something"].Value.ToString(); 虽然有效且可以正常工作,但对我来说这看起来很丑。如果我在执行ToString()之前不检查null,那么如果该属性为null,它将引发异常。有没有更好的方法来处理这种情况? 非常感激!
76 c#  .net  string  properties 

10
NuGet软件包管理器:'AutoMapper'已经具有为'Microsoft.CSharp'定义的依赖项
我正在尝试在Visual Studio Premium 2012上使用NuGet将AutoMapper作为依赖项添加到项目中,但是失败。 它说: 操作失败 'AutoMapper'已经具有为'Microsoft.CSharp'定义的依赖项。 我能够添加其他依赖项。 我正在使用VS 2012的包管理器的最新版本: NuGet软件包管理器2.8.60318.667 有什么想法我应该检查什么?


19
如何在VS 2012 RC中再次使用户类型的C#语法突出显示?
在VS 2012 IDE中,以某种方式突出显示了C#代码语法的一部分。卸载,重新引导和重新安装不会执行任何操作,也不会在选项对话框中重置颜色。 以下是一些项目的示例,这些项目全部默认显示(黑色),但通常颜色却没有: 属性 系统类别 我自己的课 以下是一些仍带有颜色的关键字: 使用 上市 虚空 变种 对于 是否有其他人遇到过这种情况并设法解决?

3
不区分大小写的正则表达式,不使用RegexOptions枚举
是否可以使用Regex类在C#中进行不区分大小写的匹配,而无需设置RegexOptions.IgnoreCase标志? 我想做的是在正则表达式本身中定义我是否希望以不区分大小写的方式完成匹配操作。 我想要此正则表达式taylor匹配以下值: 泰勒 泰勒 泰勒
76 c#  regex 

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.