Questions tagged «c#»

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

12
为什么我不能继承静态类?
我有几个不需要任何状态的类。从组织的角度来看,我想将它们分为层次结构。 但似乎我无法声明静态类的继承。 像这样: public static class Base { } public static class Inherited : Base { } 不管用。 语言的设计者为什么要关闭这种可能性?
224 c#  inheritance  static 

9
侦听.NET控制台应用程序中的按键
如何继续运行控制台应用程序,直到按键(如Esc被按下?)。 我假设它包裹在while循环中。我不喜欢ReadKey它阻止操作并要求输入按键,而不是继续听按键的声音。 如何才能做到这一点?

11
为什么C#接口不能包含字段?
例如,假设我想要一个ICar接口,并且所有实现都将包含field Year。这是否意味着每个实现都必须单独声明Year?在界面中简单地定义它会更好吗?
223 c#  interface 

4
任务构造器中的取消令牌:为什么?
某些System.Threading.Tasks.Task构造函数将a CancellationToken作为参数: CancellationTokenSource source = new CancellationTokenSource(); Task t = new Task (/* method */, source.Token); 令我感到困惑的是,没有办法从方法主体内部真正获取传入的令牌(例如,没有类似的东西Task.CurrentTask.CancellationToken)。令牌必须通过某种其他机制提供,例如状态对象或在lambda中捕获。 那么在构造函数中提供取消令牌有什么目的呢?


7
为什么在实体框架模型定义中为类属性使用“虚拟”?
在以下博客中:http : //weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx 该博客包含以下代码示例: public class Dinner { public int DinnerID { get; set; } public string Title { get; set; } public DateTime EventDate { get; set; } public string Address { get; set; } public string HostedBy { get; set; } public virtual ICollection<RSVP> RSVPs { get; set; …
223 c#  class  properties  virtual 

12
如何从getter或setter调用异步方法?
从C#中的getter或setter调用异步方法的最优雅的方法是什么? 这是一些伪代码来帮助解释自己。 async Task<IEnumerable> MyAsyncMethod() { return await DoSomethingAsync(); } public IEnumerable MyList { get { //call MyAsyncMethod() here } }
223 c#  async-ctp 

11
取消订阅C#中的匿名方法
是否可以从事件中取消订阅匿名方法? 如果我订阅这样的活动: void MyMethod() { Console.WriteLine("I did it!"); } MyEvent += MyMethod; 我可以这样退订: MyEvent -= MyMethod; 但是,如果我使用匿名方法订阅: MyEvent += delegate(){Console.WriteLine("I did it!");}; 是否可以取消订阅此匿名方法?如果是这样,怎么办?

16
获取给定日期的正确星期数
我在Google上搜索了很多,找到了很多解决方案,但是没有一个给我正确的2012-12-31周数。甚至是MSDN上的示例(链接)失败了。 2012-12-31是星期一,因此应该是第1周,但是我尝试的每种方法都给了我53。这是我尝试过的一些方法: 从MDSN库: DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo; Calendar cal = dfi.Calendar; return cal.GetWeekOfYear(date, dfi.CalendarWeekRule, dfi.FirstDayOfWeek); 解决方案2: return new GregorianCalendar(GregorianCalendarTypes.Localized).GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); 解决方案3: CultureInfo ciCurr = CultureInfo.CurrentCulture; int weekNum = ciCurr.Calendar.GetWeekOfYear(dtPassed, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); return weekNum; 更新资料 当日期为2012-12-31时,以下方法实际上返回1。换句话说,我的问题是我的方法未遵循ISO-8601标准。 // This presumes that weeks start with Monday. // Week 1 is the 1st …
222 c#  asp.net  .net  date 


11
获取当前文件夹路径
我想创建一个转换文件的程序。我希望用户能够将可执行文件放置在任何目录中,并且在执行该程序(双击.exe)时,我希望该程序处理exe文件所在的当前文件夹中的所有文件。程序如何确定当前正在执行的路径? 我尝试过,System.Windows.Forms.Application.StartupPath但这似乎是错误的方式。 有任何想法吗?
222 c#  .net  winforms  path 

30
为什么Visual Studio 2012找不到我的测试?
我有一些使用内置测试Microsoft.VisualStudio.TestTools.UnitTesting,但无法运行它们。 我正在使用Visual Studio 2012 Ultimate。 我有两个项目的解决方案;一个具有测试,using Microsoft.VisualStudio.TestTools.UnitTesting,[TestClass]前级, [TestMethod]前测试方法与参考Microsoft.VisualStudio.QualityTools.UnitTestFramework(版本10.0.0.0,运行时版本V2.0.50727)。我已经尝试过点网框架3.5、4和4.5,其他给出了重新定位错误。 我试图建立解决方案和项目。测试浏览器显示消息“构建解决方案以发现所有可用测试。单击“全部运行”以构建,发现并运行解决方案中的所有测试。 因此问题是:如何让Visual Studio查找测试? 还尝试遵循以下方法:http : //msdn.microsoft.com/zh-CN/library/ms379625%28v=VS.80%29.aspx但没有成功:当被问到以下问题时,我陷入了入门的这一节右键单击并选择create tests。没有create tests。 我有这个测试(它可以编译,但不会显示在测试浏览器中): using Microsoft.VisualStudio.TestTools.UnitTesting; namespace tests { [TestClass] public class SimpleTest { [TestMethod] public void Test() { Assert.AreEqual("a","a", "same"); } } } 我现在发现(请参阅下面的删除的答案),这是因为它位于共享驱动器上,但是我还不知道如何解决它。(有关安全性设置的信息)。

4
什么是MvcHtmlString?何时应使用它?
该文件为MvcHtmlString不可怕启发: 表示不应再次编码的HTML编码字符串。 我不清楚这到底意味着什么。似乎有些HTML帮助器方法返回MvcHtmlString,但是我在网上看到的一些自定义帮助器示例仅返回了常规字符串。 问题: 什么是MvcHtmlString? 我什么时候应该选择MvcHtmlString超过string反之亦然?为什么?
221 c#  asp.net-mvc 

9
如何以编程方式将Word文件转换为PDF?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 去年关闭。 改善这个问题 我发现有几个开源/免费程序,可以将.doc文件转换为.pdf文件,但是它们都是应用程序/打印机驱动程序的全部,没有附带SDK。 我发现有一些程序确实具有SDK,可让您将.doc文件转换为.pdf文件,但它们都是专有类型,许可证价格为2,000美元左右。 有人知道使用C#或VB.NET可以解决我的问题的任何干净,廉价(最好免费)的程序化解决方案吗? 谢谢!
221 c#  vb.net  pdf  ms-word 

1
是什么使Visual Studio调试器停止评估ToString覆盖?
环境:Visual Studio 2015 RTM。(我没有尝试过旧版本。) 最近,我一直在调试一些Noda Time代码,并且注意到当我获得类型的局部变量NodaTime.Instant(structNoda Time 的中心类型之一)时,“ Locals”和“ Watch”窗口似乎没有调用它的ToString()替代。如果我ToString()在监视窗口中显式调用,则会看到适当的表示形式,但否则只会看到: variableName {NodaTime.Instant} 这不是很有用。 如果更改覆盖以返回常量字符串,则该字符串将显示在调试器中,因此很明显它可以在其中显示它-只是不想在“正常”状态下使用它。 我决定在一个小样的演示应用程序中本地重现此内容,这就是我的想法。(请注意,在这篇文章的早期版本中,这DemoStruct是一个类,DemoClass根本不存在-我的错,但它解释了一些现在看起来很奇怪的评论...) using System; using System.Diagnostics; using System.Threading; public struct DemoStruct { public string Name { get; } public DemoStruct(string name) { Name = name; } public override string ToString() { Thread.Sleep(1000); // Vary this to see …

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.