2013-09-19 3 views
4

я определил-структуру, как это:Как вернуть Struct из функции в C#?

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

Теперь я хочу использовать его в своей функции и затем возвращали

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

, как я сказал, что я хочу знать, какой я должен определить свою функцию чтобы можно вернуть структура

+0

это звучит очень похоже на место, где вы хотите иметь класс .. – Sayse

ответ

6
public Averages AssignValues() 

написать это, вы можете вернуть структуры так же, как классы, но помните, что поля в структурах являются initalized со значениями по умолчанию, так что ваше определение структуры должно быть:

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

Так что, когда вы пишете Avereges a = new Avereges() ->a.Buy_Gram_24 будет 0, потому что значение ints по умолчанию.

7

Добавить название вашей структуры:

public Averages AssignValues() 
{ 
    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; 
} 
+0

Это дает мне сообщение об ошибке: Использование unassiend локальной переменной – AminAmiriDarban

+2

может быть, 'усредняет GoldValues ​​= новые средние();' – Ovidiu

+0

I Используется общественных усредняет AssignValues() { Среднее значение GoldValues; GoldValues.Buy_Gram_18 = 0; возвращение GoldValues; } Как вы сказали – AminAmiriDarban

Смежные вопросы