Questions tagged «c#»

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

3
实施永无止境的任务的正确方法。(计时器与任务)
因此,只要应用程序正在运行或要求取消,我的应用程序就需要几乎连续地执行操作(每次运行之间有10秒左右的暂停)。它需要做的工作可能要花费30秒。 最好使用System.Timers.Timer并使用AutoReset确保在上一个“刻度”完成之前它不执行操作。 还是我应该在LongRunning模式下使用带有取消令牌的常规Task,并在其中执行常规的无限while循环,以调用之间用10秒的Thread.Sleep进行操作来执行操作?至于异步/等待模型,我不确定这里是否合适,因为我没有任何返回值。 CancellationTokenSource wtoken; Task task; void StopWork() { wtoken.Cancel(); try { task.Wait(); } catch(AggregateException) { } } void StartWork() { wtoken = new CancellationTokenSource(); task = Task.Factory.StartNew(() => { while (true) { wtoken.Token.ThrowIfCancellationRequested(); DoWork(); Thread.Sleep(10000); } }, wtoken, TaskCreationOptions.LongRunning); } void DoWork() { // Some work that takes …

8
如何在C#中获取变量的数据类型?
我如何找出某个变量保存的数据类型?(例如,int,string,char等) 我现在有这样的事情: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Testing { class Program { static void Main() { Person someone = new Person(); someone.setName(22); int n = someone.getName(); Console.WriteLine(n.typeOf()); } } class Person { public int name; public void setName(int name) { this.name = name; } public int …
92 c#  types 

6
内部与公共在C#
我想知道public和internal可见性修饰符之间的区别。 我们什么时候应该internal在课堂上使用public?当方法应该为public或时,我感到困惑internal。 我读到internal可以通过程序集访问,而public也可以通过区别所在的程序集使用。
92 c#  .net 

12
获取,设置和属性最佳实践。Java与C#
我现在正在上一门C#类,并且试图找出做事的最佳方法。我来自Java背景,因此只熟悉Java最佳实践。我是C#新手! 在Java中,如果我有私有财产,则可以这样做。 private String name; public void setName(String name) { this.name = name; } public String getName() { return this.name; } 在C#中,我看到有很多方法可以做到这一点。 我可以像Java那样做: private string name; public void setName(string name) { this.name = name; } public string getName() { return this.name; } 或者我可以这样: private string name; public string Name { …

12
空合并运算符是否有“对立”?(...用任何语言?)
空合并大致可转换为 return x, unless it is null, in which case return y 我经常需要 return null if x is null, otherwise return x.y 我可以用 return x == null ? null : x.y; 不错,但是null中间总是困扰着我-似乎是多余的。我更喜欢这样的东西return x :: x.y;,::只有在它之前的东西不在时,它后面的才被评估null。 我认为这是几乎与简洁,内联零检查的对面空聚结,那种复杂的,但我[ 近 ]一定会出现在C#中没有这样的运营商。 是否还有其他具有这种运算符的语言?如果是这样,它叫什么? (我知道我可以在C#中为它编写一个方法;我使用return NullOrValue.of(x, () => x.y);,但是如果您有更好的东西,我也想看看。)

7
如何在不使用第三方库的情况下登录C#?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 去年关闭。 改善这个问题 我想在我的应用程序中实现日志记录,但不希望使用任何外部框架,例如log4net。 因此,我想做类似DOS 对文件的回显。最有效的方法是什么? 有没有办法在不使用外部框架的情况下记录未处理的异常?

6
封送处理-这是什么,为什么我们需要它?
什么是编组,为什么我们需要它? 我发现很难相信我无法int通过C#向C 发送电汇,而不得不进行封送处理。为什么C#不能只用开始和结束信号发送32位,告诉C代码它已经收到了int? 如果有任何很好的教程或网站介绍为什么我们需要编组以及如何使用它,那就太好了。


13
如何使窗口始终位于.Net顶部?
我有一个在另一个程序中运行宏的C#winforms应用程序。另一个程序将不断弹出窗口,并且由于缺少更好的用词,通常使事情看起来很疯狂。我想实现一个取消按钮,该按钮将停止进程的运行,但是我似乎无法使窗口停留在顶部。如何在C#中执行此操作? 编辑:我已经尝试过TopMost = true; ,但其他程序始终在顶部弹出自己的窗口。有没有办法每n毫秒将我的窗口发送到顶部? 编辑:我解决此问题的方法是添加一个系统任务栏图标,该图标将通过双击取消该过程。系统任务栏图标没有被掩盖。谢谢所有答复。我阅读了有关为什么没有“超级在顶部”窗口的文章……从逻辑上讲,它是行不通的。
92 c#  .net  winforms 

14
通过AJAX MVC下载Excel文件
我在MVC中有一个大(ish)形式。 我需要能够生成一个Excel文件,其中包含来自该表单子集的数据。 棘手的一点是,这不应影响表单的其余部分,因此我想通过AJAX进行操作。我遇到了一些关于SO的问题,这些问题似乎相关,但是我无法完全弄清楚答案的含义。 这似乎是我所追求的最接近的东西:asp-net-mvc-downloading-excel-但我不确定我是否知道响应,而且它已经存在了两年。我还遇到了另一篇有关使用iframe来处理文件下载的文章(找不到该文章了),但是我不确定如何在MVC中使用它。 如果我正在做完整的回发,但我的excel文件返回的很好,但是我无法在mvc中将其与AJAX一起使用。

6
在MatchCollection上使用LINQ扩展方法语法
我有以下代码: MatchCollection matches = myRegEx.Matches(content); bool result = (from Match m in matches where m.Groups["name"].Value.Length > 128 select m).Any(); 有没有办法使用LINQ扩展方法语法来做到这一点? 像这样: bool result = matches.Any(x => ... );
92 c#  linq 


14
当仍有大量可用内存时,抛出“ System.OutOfMemoryException”
这是我的代码: int size = 100000000; double sizeInMegabytes = (size * 8.0) / 1024.0 / 1024.0; //762 mb double[] randomNumbers = new double[size]; 异常:引发了类型为'System.OutOfMemoryException'的异常。 我在这台机器上有4GB内存,开始运行时有2.5GB可用空间,PC上显然有足够的空间来处理762mb的100000000随机数。给定可用内存,我需要存储尽可能多的随机数。当我开始生产时,包装盒上将有12GB,我想利用它。 CLR是否将我限制为默认的最大内存开始?以及我如何要求更多? 更新资料 我认为如果问题是由于内存碎片造成的话,将它分成较小的块并逐步增加我的内存需求将会有所帮助,但是不管我做什么调整blockSize,我都无法超过256mb的总ArrayList大小。 private static IRandomGenerator rnd = new MersenneTwister(); private static IDistribution dist = new DiscreteNormalDistribution(1048576); private static List<double> ndRandomNumbers = new List<double>(); private static …


10
捕获控制台出口C#
我有一个包含很多线程的控制台应用程序。有线程监视某些条件,如果满足,则终止程序。此终止可以随时发生。 我需要一个可以在程序关闭时触发的事件,以便可以清理所有其他线程并正确关闭所有文件句柄和连接。我不确定.NET框架中是否已经内置了一个,所以我要问自己写的是什么。 我想知道是否发生以下事件: MyConsoleProgram.OnExit += CleanupBeforeExit;
92 c#  .net  events  console  exit 

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.