c#-7.0相关内容
我正在浏览一些代码,这些代码使用C#7的新功能并使用引用本地变量和返回功能。 对于value-types,其中ref局部变量获取引用(对实际存储空间)的引用,以及更新更新原始项的值,似乎非常简单。 稍加解释将有助于理解reference-types在引用局部变量时内存引用是如何工作的。我指向下面代码的最后一行: // A simple class public class CoolC
..
错误:表达式树不能包含对本地函数的引用 public void Initialize() { CloudStorageProperties ImageFileProperties(string fileName) => _cloudStorage.GetBlob(CloudStorageType.Image, fileName).FileProperties; Config
..
我需要激发并忘记对某些异步方法的调用。我意识到VS建议我将调用设置为a_discard,IDE警告就会消失。但我不确定当与丢弃一起使用时,是否仍未等待该呼叫。会吗? public async Task SomeSideTaskToBeForgotten() { ...blah blah } public async Task MainTask() {
..
我希望使用模式匹配替换方法Select()中的多个if语句,如下所示。我要在typeof(T)上使用switch()语句。 static class Program { static void Main(string[] args) { var doc = new Document(); IWire select = doc.Select
..
自从 Visual Studio 2017 发布以来,我们可以使用新的 C# 7 功能,我预计这将在 Azure Web 应用程序上部署时起作用. 不幸的是,我们在使用持续部署 (kudu git deploy) 时看到编译错误,因此 Azure 似乎还不支持新工具链. 我们现在可以做些什么来让它工作(除了直接发布程序集之外)? 解决方案 因为我们在 Azure 中还没有 ms
..
默认情况下,使用 C# 7 元组时,项目将命名为 Item1、Item2 等. 我知道您可以命名方法返回的元组项.但是你能做同样的内联代码吗,比如下面的例子? foreach (var item in list1.Zip(list2, (a, b) => (a, b))){//...} 在 foreach 的正文中,我希望能够访问末尾的元组(包含 a 和 b)使用比 Item1 和 It
..
新版本的 C# 已经出现,具有有用的新功能 Tuple Types: public IQueryable查询();公共(int id,字符串名称)GetSomeInfo(){var obj = 查询().Select(o => 新 {id = o.Id,name = o.Name,}).第一的();返回(id:obj.id,名称:obj.name);} 有没有办
..
看看新的 C# 7.0 ValueTuples,我想知道它们是否会完全取代 Anonymous Types.我知道 ValueTuples 是结构,因此其行为与作为类的 Anonymous Types 有点不同.但是,我没有看到使用 Anonymous Type 而不是 ValueTuple 的用例. 是否存在使用 匿名类型 仍然比在 C# 7.0 中使用 ValueTuples 有益的用例
..
C# 7 的一个不错的新特性是可以为类定义解构器并将解构后的值直接分配给值元组. 但是,在对象被解构为单个值的情况下,我找不到将其分配给元组的方法.尽管有一种用于具有单个元素的元组类型 (ValueTuple),但使用括号的速记语法在这里不起作用.我发现访问解构器的唯一方法是直接调用 Deconstruct 方法,但这消除了它的好处,因为我可以为此使用任何方法. 有人知道将对象解
..
使用新的 c# 7 元组语法,是否可以指定一个带有元组作为参数的 lambda,并在 lambda 中使用未打包的值? 例子: var list = new List(); 在 lambda 中使用元组的常规方法: list.Select(value => value.Item1*2 + value.Item2/2); 我希望一些新的糖可以避免 .Item1 .Item2,例如:
..
在使用元组之前,我曾经创建一个类及其变量,然后从这个类创建对象,并使该对象成为某些函数的返回类型. 现在,使用元组,我可以做同样的事情,在 C# 7.0 中,我们可以为元组属性分配易于理解的名称(在此之前,它是 item1、item2等.) 所以现在我想知道,我什么时候使用元组,什么时候在 C# 7.0 中创建一个类? 解决方案 由于这个答案在这里引起了一些人的困惑,我应该澄清
..
我反编译了一些 C# 7 库,发现使用了 ValueTuple 泛型.ValueTuples 是什么,为什么不是 Tuple? https://docs.microsoft.com/en-gb/dotnet/api/system.tuple https://docs.microsoft.com/en-gb/dotnet/api/system.valuetuple 解决方案 什么
..
我有一个创建预编译 DLL 的 Azure Function 应用程序(因此它使用普通的 .cs 文件,而不是 VS2017 之前的旧 .csx 方法).以前,它的目标是 .Net Framework 4.5.2.我将它更新到 4.7,以便使用一些新的 C# 7 功能.我通过执行“Update-Package -Reinstall"更新了我的 NuGet 包,并验证它们都在我的 packages.
..
我开始在 c# 7.0 中使用新的元组功能,但我注意到无论是在返回元组的函数中还是在其调用者中,都无法在调试模式下检查变量值.而是显示一个异常: $exception 错误 CS8182:预定义类型 'ValueTuple`2' 必须是结构. 有没有办法消除该故障并正常调试? 解决方案 这似乎是微软已经修复的一个错误,但它会在未来的更新中提供(2017 年)https://github
..
我们在本地安装了 Team Foundation Server (TFS) 2015.我们希望使用 Visual Studio 2017 来利用最新的 C# 语言功能.我们还没有准备好升级到 TFS 2017.允许在 TFS 2015 中构建最新的 C# 语言功能需要哪些步骤? 解决方案 我没有完全按照这些步骤进行,但根据我所学到的,我认为它们会起作用: 安装 Visual Stud
..
我通常将 VS 2017 用于控制台应用程序.但是现在我必须创建一个新的 ASP.NET MVC 项目并发现了一些奇怪的东西. 自动生成 getter 和 setter(上下文菜单“快速操作和重构 名;设置=>名字=价值;}} 错误信息: 1>------ 构
..
引用自 Visual Studio 2017 RC 发行说明 语言扩展和分析器 此版本包括我们正在为 C# 和 Visual Basic 的下一版本开发的一些建议的新语言扩展.这些新语言功能默认启用,包括: 对于 C#: 异步方法的类似任务的返回类型:这引入了返回任何来自异步方法的类似任务的类型.以前,这些返回类型仅限于 Task 和 Task. 它说它默认启用
..
我在解决方案中有几个项目,C# 7 功能(例如元组和 throw 表达式)在所有库项目中都可以正常工作,但是有一个(非核心)Web 项目由于以下原因无法编译C# 7 功能上的错误.编译后,错误窗口很快就会自行清除,可能是因为 IDE/编辑器编译相同的单元而没有错误.我必须使用输出窗口来查看编译器错误.就好像 IDE/编辑器假设 C# 7,但构建中使用的编译器不是. 我尝试将“__DEMO__
..
在 Visual Studio 2017 发布后,我想尝试使用新的 C# 7 功能创建简单的控制台项目.我希望我只需下载新的 Visual Studio 2017,然后创建新的控制台项目并可以使用新的 C# 7 功能.但我不能. 如果我安装 NuGet,我可以使用一些功能,例如元组包 System.ValueTuple. 但是对于其他功能,我不知道我需要做什么.例如 这个 NuGet
..
我已经安装了一周前发布的 Visual Studio 2017 Community,并开始探索 C# 7 的新功能. 所以我创建了一个返回两个值的简单方法: 公开课程序{公共静态无效主要(字符串[]参数){(int sum, int count) a = ReturnTwoValues();}static (int sum, int count) ReturnTwoValues() =>(
..