Tag: void

将LINQ序列中的项发送到返回void的方法

通常在我处理LINQ序列时,我想将每个项目发送到返回void的方法,避免使用foreach循环。 但是,我还没有找到一种优雅的方法来做到这一点。 今天,我写了以下代码: private StreamWriter _sw; private void streamToFile(List errors) { if (_sw == null) { _sw = new StreamWriter(Path.Combine (Path.GetDirectoryName(_targetDatabasePath), “errors.txt”)); } Func writeSelector = (e) => { _sw.WriteLine(getTabDelimititedLine(e)); return true; }; errors.Select(writeSelector); _sw.Flush(); } 正如您所看到的,我编写了一个只返回true的lambda函数,我意识到Select方法将返回一个布尔序列 – 我将忽略该序列。 然而,这看起来有点讽刺和下沉。 有没有优雅的方法来做到这一点? 或者我只是误用了LINQ? 谢谢。

C#thread方法返回一个值?

可能重复: 从Thread.Start()的委托函数访问返回值 public string sayHello(string name) { return “Hello ,”+ name; } 我如何在Thread中使用此方法? ThreadStart方法只接受void方法。 我在等你的帮助。 谢谢。

什么都不返回或返回void – C#在void Function()调用结束时究竟做了什么?

考虑以下C#函数: void DoWork() { … } C#文档说明: 当用作方法的返回类型时,void指定该方法不返回值 。 这似乎是直截了当的,在大多数情况下,这适合作为公平的定义。 然而,对于许多低级语言(即C),“void”具有略微不同的含义。 具体来说,所有代码块都必须返回一些内容 。 因此, void是空指针的表示,它表示“无”。 在这种情况下,您不需要在代码中包含return语句,因为任何不返回值的块语句都会自动返回空指针。 这是C#所做的,或者当调用void函数时,它是否执行一段代码并返回甚至没有包含void值的指针?

C#lambda表达式是否会返回void?

我有以下方法, 我想知道下面是否有任何东西可以使用default(void),因为有一个编译器错误,说明void在这里无效: private void applyDefaultsIfNecessary(ApplicationConfiguration configuration) { var defaults = new Dictionary<Predicate, Action>() { // { rule, action } – if rule is true, execute action { (c) => c.ConnectionString == null , (c) => c.ConnectionString = “foo” }, { (c) => c.OutputExcelFilePath == null, (c) => c.ConnectionString = “bar” }, { (c) => c.OutputDirectory […]

async Task vs async void

这可能是一个非常愚蠢的问题,但我有以下编码行将RAW图像转换为BitmapImages: public async void CreateImageThumbnails(string imagePath, int imgId) { await Task.Run(() => controlCollection.Where(x => x.ImageId == imgId).FirstOrDefault().ImageSource = ThumbnailCreator.CreateThumbnail(imagePath)); } 调用此方法CreateThumbnail() public static BitmapImage CreateThumbnail(string imagePath) { var bitmap = new BitmapImage(); using (var stream = new FileStream(imagePath, FileMode.Open, FileAccess.Read)) { bitmap.BeginInit(); bitmap.DecodePixelWidth = 283; bitmap.CacheOption = BitmapCacheOption.OnLoad; bitmap.StreamSource = stream; bitmap.EndInit(); } bitmap.Freeze(); GC.WaitForPendingFinalizers(); […]