2017-09-28 4 views
0

私は自分自身に尋ねられました。関数のパラメータでクラスのプロパティを作るにはどうすればいいですか? 私の考えを説明する擬似コードの例を書きました。クラスのプロパティをparamで作るには?

private void UpdateCurrentGraphicSettingValue(Dropdown pDropdown, ??? pThing) 
{ 
    if(pDropdown.value == 0) 
    { 
     CurrentGraphicsSetting.pThing = LowGraphicsSetting.pThing 
    } 
} 

ご意見がありましたら、非常に参考になります。

+0

あなたがしてください、少し明確にすることはできますか? – Neo

+1

'ジェネリック'や 'ダイナミック'タイプを使うことができます。 – George

+0

ええ...それは意味をなさない!大変ありがとうございました –

答えて

3

代わりにこのようなものをお勧めしますか?

理解できない部分がある場合は、説明します。あなたの助けを借りて

public class test : MonoBehaviour { 

    public GraphicSettings CurrentGraphicsSetting; 
    public GraphicSettings LowGraphicsSetting = new GraphicSettings() { pThing1 = 23, pThing2 = "test23" }; 
    public GraphicSettings HighGraphicsSetting = new GraphicSettings() { pThing1 = 2300, pThing2 = "test23sd" }; 

    public class GraphicSettings 
    { 
     public int pThing1 = 0; 
     public string pThing2 = "test"; 
    } 

    private void UpdateCurrentGraphicSettingValue(Dropdown pDropdown) 
    { 
     if (pDropdown.value == 0) 
     { 
      CurrentGraphicsSetting = LowGraphicsSetting; 
     } 
     else 
     { 
      CurrentGraphicsSetting = HighGraphicsSetting; 
     } 

     ApplyGraphicSettings(); 
    } 

    private void ApplyGraphicSettings() 
    { 
     SomeSetting = CurrentGraphicsSetting.pThing1; 
     SomeOtherSetting = CurrentGraphicsSetting.pThing2; 
    } 
} 
+0

多分それはうまくいくかもしれません。感謝 –

0

私は最終的にちょうどこのように...私の問題を解決しました:

private void UpdateCurrentGraphicSettingValue(Dropdown pDropdown, ref int p1, ref int p2) 
{ 
    if(pDropdown.value == 0) 
    { 
     p1 = p2; 
    } 

UpdateCurrentGraphicSettingValue(myDropdown, ref CurrentGraphic.pixelLightCount, ref LowGraphic.pixelLightCount) 
関連する問題