Questions tagged «c#»

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


12
使用Random和OrderBy是一种很好的随机播放算法吗?
我在Coding Horror上阅读了一篇有关各种随机播放算法的文章。我已经看到有人在这样做的地方随机排列列表: var r = new Random(); var shuffled = ordered.OrderBy(x => r.Next()); 这是一个很好的随机播放算法吗?究竟如何运作?这是可以接受的方式吗?
164 c#  algorithm  shuffle 



6
立即退还所有可枚举的收益;没有循环
我具有以下功能来获取卡的验证错误。我的问题与处理GetErrors有关。两种方法具有相同的返回类型IEnumerable<ErrorInfo>。 private static IEnumerable<ErrorInfo> GetErrors(Card card) { var errors = GetMoreErrors(card); foreach (var e in errors) yield return e; // further yield returns for more validation errors } 是否可以返回所有错误GetMoreErrors而不必通过错误进行枚举? 考虑一下这可能是一个愚蠢的问题,但是我想确保自己没有错。

16
使用Null合并运算符的独特方法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2个月前关闭。 改善这个问题 我知道在C#中使用Null合并运算符的标准方法是设置默认值。 string nobody = null; string somebody = "Bob Saget"; string anybody = ""; anybody = nobody ?? "Mr. T"; // returns Mr. T anybody = somebody ?? "Mr. T"; // returns "Bob Saget" 但是还有什么??用呢?它看起来不像三元运算符有用,除了比以下内容更简洁和易于阅读之外: nobody = null; anybody = nobody == null ? "Bob Saget" …


23
拒绝访问路径
我知道这个问题在这里被问过很多次,但是我找不到解决问题的方法。我正在尝试将图像保存到.net c#中的文件夹,但出现此异常: Access to the path 'C:\inetpub\wwwroot\mysite\images\savehere' is denied.The error occured at mscorlib because at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess …
164 c#  .net  iis  path  denied 


11
如何将接口用作C#通用类型约束?
有没有办法获取以下函数声明? public bool Foo<T>() where T : interface; 即。其中T是接口类型(类似于where T : class和struct)。 目前,我已经满足: public bool Foo<T>() where T : IBase; IBase被定义为一个空接口,所有我的自定义接口都继承了该接口...不太理想,但它应该可以工作...为什么不能定义泛型类型必须是接口? 对于它的价值,我想Foo要这样做,因为是在需要接口类型的地方进行反射...我可以将其作为常规参数传入,并在函数本身中进行必要的检查,但这似乎要类型安全得多(而且我假设性能更高一点,因为所有检查都是在编译时完成的)。


4
如何取消等待中的任务?
我正在玩这些Windows 8 WinRT任务,并且正在尝试使用以下方法取消任务,并且在某种程度上可以正常工作。确实会调用CancelNotification方法,这使您认为任务已被取消,但是在后台任务继续运行,然后在完成后,任务的状态始终为完成且从未取消。取消任务后,是否有办法完全停止任务? private async void TryTask() { CancellationTokenSource source = new CancellationTokenSource(); source.Token.Register(CancelNotification); source.CancelAfter(TimeSpan.FromSeconds(1)); var task = Task<int>.Factory.StartNew(() => slowFunc(1, 2), source.Token); await task; if (task.IsCompleted) { MessageDialog md = new MessageDialog(task.Result.ToString()); await md.ShowAsync(); } else { MessageDialog md = new MessageDialog("Uncompleted"); await md.ShowAsync(); } } private int slowFunc(int …

7
如何使HttpClient与请求一起传递凭据?
我有一个与Windows服务对话的Web应用程序(托管在IIS中)。Windows服务使用的是ASP.Net MVC Web API(自托管),因此可以使用JSON与HTTP进行通信。Web应用程序被配置为进行模拟,其想法是向Web应用程序发出请求的用户应该是Web应用程序用于向服务发出请求的用户。结构如下: (以红色突出显示的用户是以下示例中所指的用户。) 该Web应用程序使用以下命令向Windows服务发出请求HttpClient: var httpClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }); httpClient.GetStringAsync("http://localhost/some/endpoint/"); 这会向Windows服务发出请求,但不会正确传递凭据(服务将用户报告为IIS APPPOOL\ASP.NET 4.0)。这不是我想要发生的事情。 如果我更改上面的代码以使用 WebClient,则正确传递了用户的凭据: WebClient c = new WebClient { UseDefaultCredentials = true }; c.DownloadStringAsync(new Uri("http://localhost/some/endpoint/")); 使用上面的代码,服务将用户报告为向Web应用程序发出请求的用户。 我的HttpClient实现有什么问题,导致它无法正确传递凭据(或者是的错误HttpClient)? 我要使用的原因HttpClient是它具有一个与s兼容的异步API Task,而WebClient的asyc API需要通过事件进行处理。

6
无法创建类型的常量值在此上下文中仅支持原始类型或枚举类型
我在下面的查询中遇到此错误 无法创建类型的常量值API.Models.PersonProtocol。在此上下文中仅支持原始类型或枚举类型 ppCombined下面是的IEnumerable对象PersonProtocolType,由2个PersonProtocol列表的concat构造。 为什么会失败?我们不能JOIN在SELECTa 内部使用LINQ 子句JOIN吗? var persons = db.Favorites .Where(x => x.userId == userId) .Join(db.Person, x => x.personId, y => y.personId, (x, y) => new PersonDTO { personId = y.personId, addressId = y.addressId, favoriteId = x.favoriteId, personProtocol = (ICollection<PersonProtocol>) ppCombined .Where(a => a.personId == x.personId) .Select( b => new …


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.