簡體   English   中英

在C#中是否有f'{}'的等價物

[英]Is there an equivalent of f'{}' in c#

我來自Python背景,正在處理的代碼會創建許多具有相同名稱的變量,並在末尾附加一個整數,並且需要在C#中復制Python的f'something here {variable}'方法。 我怎樣才能做到這一點?

int num1 = 1;
int num2 = 2;
int num3 = 3;
int num4 = 4;

等等...

有沒有辦法做類似的事情

for (int i=1;i<5;i++) 
{
    int f'num{i}' = i;
}

在理想的世界中,您永遠不要為變量編號,而只使用數組(或其他集合)。 因此,您將擁有:

for (int i=0;i<5;i++) 
{
    num[i] = i;
}

這要求您的變量列表改為一個可索引的變量(如數組)

int[] num = new int[5];

從字符串訪問C#中的變量的唯一方法是使用反射(這是一個相當高級的概念,容易出錯,效率不高)。 話雖這么說,你會做類似的事情:

Type thisClass = this.GetType(); //Even better, typeof(WhateverClassThisIs);
for (int i=1;i<5;i++) 
{
    FieldInfo field = thisClass.GetField($"num{i}");
    field.SetValue(this, i);
}

請注意,這僅在num1等是現有類成員(不會創建它們)並且不在函數本地的情況下才有效。 如果您有局部變量,那么您基本上是不走運的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM