简体   繁体   中英

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

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;
}
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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM