C# 如何重新写入空检查行,因为它是';谁不团结起来?

C# 如何重新写入空检查行,因为它是';谁不团结起来?,c#,unity3d,unity5,C#,Unity3d,Unity5,在csharp中,它运行良好。 但在unity visual studio中,我遇到了一个错误: XDocument document = XDocument.Load(@"C:\Users\mysvg\Documents\my.svg"); XNamespace ns = "http://www.w3.org/2000/svg"; var list = document.Root.Descendants(ns + "rect").Select(

在csharp中,它运行良好。 但在unity visual studio中,我遇到了一个错误:

XDocument document = XDocument.Load(@"C:\Users\mysvg\Documents\my.svg");
            XNamespace ns = "http://www.w3.org/2000/svg";

            var list = document.Root.Descendants(ns + "rect").Select(e => new {
                Style = e.Attribute("style").Value.Substring(15, 7),
                Transform = e.Attribute("transform")?.Value,
                Width = e.Attribute("width").Value,
                Height = e.Attribute("height").Value,
                X = e.Attribute("x").Value
            });
C#4中没有“null传播运算符”功能。请使用语言版本6或更高版本

在csharp中,我不需要改变任何东西

我在unity中使用的visual studio(与csharp相同)是:14.0.24531.01更新3和visual c#2015


也许我需要将检查null的行更改为其他内容?

您可以使用三元运算符
?:
以旧式的方式执行此操作,并且我将获取集合初始值设定项之外的属性,这样您就不必对其进行两次索引:

e.Attribute("transform")?.Value.Substring(18, 43)

如果将Visual Studio版本升级到2015或2017年,则可以使用空条件运算符。

您已经知道为什么不能使用
?。
,这是因为Unity不支持支持

评论建议使用if语句,但我不认为你们可以在这里使用它

您可以使用三元运算符检查
null

使用:

如果你仍然困惑。以下是全部代码:

Transform = e.Attribute("transform") != null ? e.Attribute("transform").Value : "",

这与VS无关,而是在Unity中使用的C#编译器,正如错误所述,它最多只支持C#4.0。因此,您必须编写“旧式”空检查,例如:
if(e.Attribute(“transform”)!=null)
@UnholySheep,但是在哪里以及如何添加这种旧式空检查?我将该行更改为原来的:Transform=e.Attribute(“Transform”).Value.Substring(18,43),但现在在何处添加if(e.Attribute(“Transform”)!=null),我不能只将该行添加到e.Attribute行上方。您可以将其放入if语句中。你还在为此挣扎吗?@Programmer yes仍然不知道if(e.Attribute(“transform”)!=null)放在哪里/如何放不,升级Visual Studio版本将无法在Unity中使用C#6-它有自己的编译器,目前不支持C#6(虽然它计划在Mono运行时升级后的未来版本中使用)它不起作用。你不能在新的{之前添加var,因为它会产生很多错误。
Transform = e.Attribute("transform") != null ? e.Attribute("transform").Value : "",
XDocument document = XDocument.Load(@"C:\Users\mysvg\Documents\my.svg");
XNamespace ns = "http://www.w3.org/2000/svg";

var list = document.Root.Descendants(ns + "rect").Select(e => new
{
    Style = e.Attribute("style").Value.Substring(15, 7),
    Transform = e.Attribute("transform") != null ? e.Attribute("transform").Value : "",
    Width = e.Attribute("width").Value,
    Height = e.Attribute("height").Value,
    X = e.Attribute("x").Value
});