Questions tagged «c#»

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




7
如何在Razor中声明局部变量?
我正在asp.net mvc 3中开发一个Web应用程序。在使用剃刀的视图中,我想声明一些局部变量并在整个页面中使用它。如何才能做到这一点? 能够执行以下操作似乎很琐碎: @bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName); @if (isUserConnected) { // meaning that the viewing user has not been saved <div> <div> click to join us </div> <a id="login" href="javascript:void(0);" style="display: inline; ">join</a> </div> } 但这是行不通的。这可能吗?


11
公共字段与自动属性
人们经常被告知,我们应该通过为类字段创建getter和setter方法(C#中的属性)来保护封装,而不是将字段暴露给外界。 但是在很多情况下,只有一个字段可以保存一个值,而无需获取或设置任何计算。对于这些,我们都将使用以下数字: public class Book { private string _title; public string Title { get{ return _title; } set{ _title = value; } } } 好吧,我有一个坦白的话,我忍不住写所有的东西(真的,不必写它,而不必去看它),所以我流氓并使用了公共领域。 然后是C#3.0,我看到它们添加了自动属性: public class Book { public string Title {get; set;} } 哪个比较整洁,我对此很感激,但实际上,与仅公开场地有何不同? public class Book { public string Title; }

26
您可以使用多个过滤器调用Directory.GetFiles()吗?
我正在尝试使用该Directory.GetFiles()方法来检索多种类型的文件列表,例如mp3和jpg。我没有运气就尝试了以下两种方法: Directory.GetFiles("C:\\path", "*.mp3|*.jpg", SearchOption.AllDirectories); Directory.GetFiles("C:\\path", "*.mp3;*.jpg", SearchOption.AllDirectories); 有没有办法在一个电话中做到这一点?
353 c#  filesystems  .net 


13
即使没有空检查,使用“ as”代替强制转换是否有意义?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 在开发博客,在线代码示例,以及(最近)甚至是一本书中,我一直对类似的代码code之以鼻: var y = x as T; y.SomeMethod(); 或更糟糕的是: (x as T).SomeMethod(); 这对我来说没有意义。如果您确定x类型为T,则应使用直接强制转换:(T)x。如果不确定,可以使用as但需要检查null后再执行某些操作。上面的代码所做的就是将(有用的)InvalidCastException变成(无用的)NullReferenceException。 我是唯一认为这是公然滥用as关键字的人吗?还是我错过了明显的事情,而上述模式确实有意义?

5
C#中的方法组是什么?
在以下情况下,我经常遇到诸如“无法从“方法组”转换为“字符串””之类的错误: var list = new List<string>(); // ... snip list.Add(someObject.ToString); 当然,最后一行有一个错字,因为我忘了后面的调用括号ToString。正确的格式为: var list = new List<string>(); // ... snip list.Add(someObject.ToString()); // <- notice the parentheses 但是我开始想知道什么是方法组。谷歌并没有多大帮助,也不是MSDN。
351 c#  .net  method-group 




8
为什么不能在lock语句的主体内使用'await'运算符?
锁定语句中不允许使用C#(.NET Async CTP)中的await关键字。 从MSDN: 等待表达式不能用于同步函数,查询表达式,异常处理语句的catch或finally块,锁语句的块或不安全的上下文中。 我认为由于某种原因,对于编译器团队而言,这既困难又不可能。 我尝试了using语句: class Async { public static async Task<IDisposable> Lock(object obj) { while (!Monitor.TryEnter(obj)) await TaskEx.Yield(); return new ExitDisposable(obj); } private class ExitDisposable : IDisposable { private readonly object obj; public ExitDisposable(object obj) { this.obj = obj; } public void Dispose() { Monitor.Exit(this.obj); } } …
348 c#  .net  async-await 

30
错误消息“无法加载一种或多种请求的类型。检索LoaderExceptions属性以获取更多信息。
我已经使用Entity Framework,SQL Server 2000,Visual Studio 2008和Enterprise Library 开发了一个应用程序。 它在本地绝对可以正常工作,但是当我将项目部署到测试环境时,出现以下错误: 无法加载一种或多种请求的类型。检索LoaderExceptions属性以获取更多信息 堆栈跟踪:位于System.Reflection.Module._GetTypesInternal(StackCrawlMark&stackMark) 在System.Reflection.Assembly.GetTypes() 在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext上下文) 在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext上下文)处 在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(Assembly程序集,Boolean loadReferencedAssemblies,字典2 knownAssemblies, Dictionary2&typesInLoading,List`1&错误) 在System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection,程序集程序集,布尔loadReferencedAssemblies) 在System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(类型类型) 在System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(类型类型,程序集callingAssembly) 在System.Data.Objects.ObjectContext.CreateQuery [T](字符串queryString,ObjectParameter []参数)处 实体框架似乎有问题,有什么线索如何解决?

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.