C# değişkenin adı string olarak nasıl alınır?

phan metal

Centipat
Katılım
10 Temmuz 2022
Mesajlar
1.200
Çözümler
5
Örneğin;

C#:
int Ankara;

Ankara adlı değişkenin adını nasıl.

C#:
String a = Ankara;

Olarak alabilirim?

Bir metot var mıdır bunun için?
 
Son düzenleyen: Moderatör:
Örneğin;

C#:
int Ankara;

Ankara adlı değişkenin adını nasıl.

C#:
String a = Ankara;

Olarak alabilirim?

Bir metot var mıdır bunun için?

Yapmak istediğiniz işlemi anlamadım ancak int kullanımında olduğu gibi istiyorsanız
String a;
A='Ankara'
Şeklinde yapabilirsiniz gibi.
 
Örneğin;

C#:
int Ankara;

Ankara adlı değişkenin adını nasıl.

C#:
String a = Ankara;

Olarak alabilirim?

Bir metot var mıdır bunun için?
Merhaba, sınıf özelliklerini reflection ile alma şansınız var. Fakat method içinde tanımladığınız değişkenin ismini alma şansınız yok gibi. Derlendiklerinde isimler kullanılmıyor çünkü.
 
Tanımlıyoruz ama bazen böyle bir şeye ihtiyaç duyuluyor.
Kendi değişken sisteminizi oluşturabilirsiniz. Şu şekilde:
C#:
using System.Collections

class Variables
{
    public ArrayList varNames = new ArrayList();
    public ArrayList varVals = new ArrayList();
    
    public void AddVariable(string name, object value)
    {
        if(name != null && name.Trim() != "" && !name.Trim().Contains(' ') && !varNames.Contains(name.Trim()))
        {
            varNames.Add(name);
            varVals.Add(value);
        }
    }

    public string GetNameOfVariable(int index)
    {
        try
        {
            return varNames[index].ToString();
        }
        catch
        {
            return null;
        }
    }

    public object GetVariableValue(string valName)
    {
        if(varNames.Contains(valName))
        {
            return varVals[varNames.IndexOf(valName)];
        }
        else
        {
            return null;
        }
    }

    public void ChangeVariableValue(string valName, object val)
    {
        if(varNames.Contains(valName))
        {
            varVals[varNames.IndexOf(valName)] = val;
        }
    }   
}
İsterseniz bu şekilde kullanabilirsiniz ama hiç optimize olacağını düşünmüyorum. Tavsiyem bu şekilde kullanmamanız.
 
Sürekli tür dönüşümü yapılması hoş bir şey değil gibi. Performansı gerçekten çok düşürür ama istenen şey için mantıklı bir hamle.

Tabii bu sınıfı uygulamaya SingleInstance olarak enjekte etmeniz gerekiyor.
 
Dediğim gibi eğer class property'si olsa idi almak mümkün. Reflection ile tür özelliklerini gezebilirsiniz. Method içinde oluşturulan değişkenin ismini kullanacak kadar bağımlı olmak zaten başlı başına bir sorun.

Asıl sorun sizin buna ihtiyaç duymanız gibi görünüyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…