Amin AmiriDarban
Amin AmiriDarban

Reputation: 2068

How to return Struct From Function in C#?

I defined a struct like this :

 public struct Averages
    {
        public decimal Sell_GoldOunce = 0;
        public decimal Buy_GoldOunce = 0;
        public decimal Sell_SilverOunce = 0;
        public decimal Buy_SilverOunce = 0;
        public int Sell_Mazene = 0;
        public int Buy_Mazene = 0;
        public int Sell_Gram_18 = 0;
        public int Buy_Gram_18 = 0;
        public int Sell_Gram_24 = 0;
        public int Buy_Gram_24 = 0;
    };

Now i Want to Use it in my Function And Then RETURN IT

    public (?) AssignValues()// I WANT TO KNOW WHAT SHOULD I PUT INSTITE OF (?)
    {
        Averages GoldValues;
        GoldValues.Sell_GoldOunce = somevalue;
        GoldValues.Buy_GoldOunce = somevalue;
        GoldValues.Sell_SilverOunce = somevalue;
        GoldValues.Buy_SilverOunce = somevalue;
        GoldValues.Sell_Mazene = somevalue;
        GoldValues.Buy_Mazene = somevalue;
        GoldValues.Sell_Gram_24 = somevalue;
        GoldValues.Buy_Gram_24 = somevalue;
        GoldValues.Sell_Gram_18 = somevalue;
        GoldValues.Buy_Gram_18 = somevalue;

        return GoldValues;
    }

as i said i want to know what kind i should define my function to can return struct

Upvotes: 3

Views: 31790

Answers (2)

Andrei Neculai
Andrei Neculai

Reputation: 482

Add the name of your struct:

public Averages AssignValues()
{
    Averages GoldValues = new Averages();
    GoldValues.Sell_GoldOunce = somevalue;
    GoldValues.Buy_GoldOunce = somevalue;
    GoldValues.Sell_SilverOunce = somevalue;
    GoldValues.Buy_SilverOunce = somevalue;
    GoldValues.Sell_Mazene = somevalue;
    GoldValues.Buy_Mazene = somevalue;
    GoldValues.Sell_Gram_24 = somevalue;
    GoldValues.Buy_Gram_24 = somevalue;
    GoldValues.Sell_Gram_18 = somevalue;
    GoldValues.Buy_Gram_18 = somevalue;

    return GoldValues;
}

Upvotes: 9

Kamil Budziewski
Kamil Budziewski

Reputation: 23087

public Averages AssignValues()

write it, you can return Structs just like classes, but remember that fields in structs are initalized with default values, so your definition of struct should be:

public struct Averages
{
    public decimal Sell_GoldOunce;
    public decimal Buy_GoldOunce;
    public decimal Sell_SilverOunce;
    public decimal Buy_SilverOunce;
    public int Sell_Mazene;
    public int Buy_Mazene;
    public int Sell_Gram_18;
    public int Buy_Gram_18;
    public int Sell_Gram_24;
    public int Buy_Gram_24;
};

So when you write Avereges a = new Avereges() -> a.Buy_Gram_24 will be 0 because thats int's default value.

Upvotes: 8

Related Questions