Jump to content
Unity Insider Forum
PM_Daniel

Schönere Schreibweise?

Recommended Posts

Hallo Gemeinde. :)

Ich bin gerade dabei meinen Code ein wenig auf zu räumen und möchte dabei einige TODO's abarbeiten.
Dazu gehört es eine Methode leichter nutzbar zu machen.
Aktuell sieht die Methode so aus:
 

    public static object Load<T>(string key)
    {
        var value = default(T);

        if (!TryGetData<T>(key, out value))
        {
            value = default(T);
        }
        return value;
    }

Wenn ich diese aber nun aufrufe muss ich folgendes schreiben:
 

 int output =(int) Load<int>("Integer");

Eine Variable 3 mal deklarieren zu müssen finde ich aber sehr unschön.

Kennt jemand eine Möglichkeit das der Aufruf so aussehen könnte:
 

int output = Load("Integer");

 

Über verbesserungsforschläge würde ich mich sehr freuen. :)

Share this post


Link to post
Share on other sites

Du hast in der Methodensignatur schon T "definiert". Du kannst es benutzen:

public static T Load<T>(string key)

Machen AddComponent und GetComponent genauso.

Dein erwünschter Aufruf geht dabei nicht, weil C# nicht gerne T aus dem Aufruf inferiert. Andersherum ist das aber kein Problem. Statt

int output = Load("Integer");

geht also

var output = Load<int>("Integer");

 

Du kannst dir übrigens die zweite Zuweisung sparen; value ist bereits default(T). Macht als Ergebnis:

public static T Load<T>(string key)
{
  var value = default(T);
  TryGetData<T>(key, out value);
  return value;
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×