Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用字符串的字符串插值_C#_String Interpolation - Fatal编程技术网

C# 使用字符串的字符串插值

C# 使用字符串的字符串插值,c#,string-interpolation,C#,String Interpolation,下面是一个字符串插值示例。如果apple等于apple,则返回yes或no var result = $"{("apple" == "apple" ? "yes" : "no")}"; 我需要做的是分配一个字符串 string text= "{(apple == apple ? yes: no)}"; var result = $"{text}"; 我预计var结果将是yes。因为它类似于上面的代码。但是,我得到的结果是字符串textit self 我的问题是:如何传递类似于“{(apple

下面是一个字符串插值示例。如果
apple
等于
apple
,则返回
yes
no

var result = $"{("apple" == "apple" ? "yes" : "no")}";
我需要做的是分配一个字符串

string text= "{(apple == apple ? yes: no)}";
var result = $"{text}";
我预计
var结果
将是
yes
。因为它类似于上面的代码。但是,我得到的结果是字符串
text
it self


我的问题是:如何传递类似于
“{(apple==apple?yes:no)}”的字符串,并获得类似
yes
no
的输出?

不能。插入的意义-允许在字符串中插入代码的输出。编译器应该知道注入什么。在第二种情况下,string=text=可以包含任何内容,它更多地用于解释器,而不是编译器。现在代码按它应该的方式工作。我知道。

不行。插入的意义-允许在字符串中插入代码的输出。编译器应该知道注入什么。在第二种情况下,string=text=可以包含任何内容,它更多地用于解释器,而不是编译器。现在代码按它应该的方式工作。Imho.

如果您只想返回“是”或“否”,那么就不需要插值,因为没有什么可插值的。你可以这样做:

var result = something == "apple" ? "yes" : "no";
如果您需要一些连接-换句话说,您必须插入一些内容-您可以这样做:

var something = "apple";
var result = $"Is it an apple? {(something == "apple" ? "yes" : "no")}!";
返回

它是苹果吗?对!

整个条件表达式需要放在括号中

为了可读性,无论如何,将其分解为多个步骤可能是有意义的

var something = "apple";
var yesOrNo = something == "apple" ? "yes" : "no";
var result = $"Is it an apple? {yesOrNo}!";

如果您只想返回“是”或“否”,那么就不需要插值,因为没有什么可插值的。你可以这样做:

var result = something == "apple" ? "yes" : "no";
如果您需要一些连接-换句话说,您必须插入一些内容-您可以这样做:

var something = "apple";
var result = $"Is it an apple? {(something == "apple" ? "yes" : "no")}!";
返回

它是苹果吗?对!

整个条件表达式需要放在括号中

为了可读性,无论如何,将其分解为多个步骤可能是有意义的

var something = "apple";
var yesOrNo = something == "apple" ? "yes" : "no";
var result = $"Is it an apple? {yesOrNo}!";

运行时不会使用
$
进行字符串插值。它在编译时进行计算。运行时仅计算大括号之间的表达式

当您希望稍后在运行时执行评估时,需要使用委托:

因为除了字符串本身,没有什么可以插值的


可以传递委托,例如作为函数参数。

在运行时不会使用
$
进行字符串插值。它在编译时进行计算。运行时仅计算大括号之间的表达式

当您希望稍后在运行时执行评估时,需要使用委托:

因为除了字符串本身,没有什么可以插值的


委托可以传递,例如作为函数参数。

这与您所寻找的语法不同,但它可以:

 public class yourFruitStand
 {
      private string yourFruitName;
      public bool YourFruitName
      {
           get
           {
               return yourFruitName;
           }
           set
           {
               yourFruitName = value;

               if(yourFruitName == "apple")
               {
                    yesOrNo = true;
               }
               else
               {
                    yesOrNo = false;
               }
           }
      }
      private bool yesOrNo;
      public bool yesOrNo
      {
           get
           {
               return yesOrNo;
           }
           set
           {
               yesOrNo = value;
           }
      }
 }

这与您所寻找的语法不同,但它可以工作:

 public class yourFruitStand
 {
      private string yourFruitName;
      public bool YourFruitName
      {
           get
           {
               return yourFruitName;
           }
           set
           {
               yourFruitName = value;

               if(yourFruitName == "apple")
               {
                    yesOrNo = true;
               }
               else
               {
                    yesOrNo = false;
               }
           }
      }
      private bool yesOrNo;
      public bool yesOrNo
      {
           get
           {
               return yesOrNo;
           }
           set
           {
               yesOrNo = value;
           }
      }
 }

你不能,至少不能使用那种特定的语言功能。它不是那样工作的。@Meta Knight它是
{(apple==apple?yes:no)}
(可能是我应该将其作为变量文本的输出进行重定相位)。可能的重复。是否有其他方法可以实现此目的?请参阅建议的重复。我认为您可能能够使用
FormattableString
获得一些东西,但我个人还没有使用过它。您不能,至少不能使用特定的语言功能。它不是那样工作的。@Meta Knight它是
{(apple==apple?yes:no)}
(可能是我应该将其作为变量文本的输出进行重定相位)。可能的重复。是否有其他方法可以实现此目的?请参阅建议的重复。我想您可能可以使用
FormattableString
获得一些东西,但我还没有亲自使用它。如果输入字符串仅为
“{(apple==apple?yes:no)}”
,该怎么办。然后,我需要输出答案是或否。我是否必须拆分字符串并构建一个等式,如您的示例所示?或者有其他方法可以做到这一点吗?在这种情况下,您将尝试将代码放在字符串文本中,并在运行时对其进行解释。这样的事情是存在的,但它已经偏离了常规,就像试图在运行时动态生成类一样。除非您试图构建一个编译器,否则这几乎肯定是您不想做的事情。如果输入字符串只是
“{(apple==apple?yes:no)}”
,该怎么办。然后,我需要输出答案是或否。我是否必须拆分字符串并构建一个等式,如您的示例所示?或者有其他方法可以做到这一点吗?在这种情况下,您将尝试将代码放在字符串文本中,并在运行时对其进行解释。这样的事情是存在的,但它已经偏离了常规,就像试图在运行时动态生成类一样。除非你试图构建一个编译器,否则这几乎肯定是你不想做的事情。