如何为变量设置一行代码

时间:2016-11-09 16:05:30

标签: c#

我有一行代码:

GameObject.Find("colorswitchred (" + id.ToString() + ")").transform.GetComponent<Main>().state

这一行在整个代码中被多次使用。我想知道是否有办法得到它所以我可以只有一个像s这样的变量来代表这行代码,所以每次我想说GameObject.Find(“colorswitchred(”+ id.ToString()+“) “)。transnsform.GetComponent()。state = 0,我可以把s = 0

3 个答案:

答案 0 :(得分:5)

只需将其粘贴在一个有用名称的方法中:

public void SetColorSwitchRedState(int id, int newState)
{
    GameObject.Find("colorswitchred (" + id.ToString() + ")").transform.GetComponent<Main>().state = newState;
}

然后你可以这样说:

SetColorSwitchRedState(42, 0);

答案 1 :(得分:2)

  

...我可以把s = 0

不,但你可以近距离接触

s(id, 0);

您可以通过声明代理来执行此操作:

Action<int, int> s = (id, newState) => GameObject.Find("colorswitchred (" + id.ToString() + ")").transform.GetComponent<Main>().state = newState;

委托是指向方法的指针,在这种情况下,它期望一个int(id)和另一个int(你想要设置的值)。

应该说明s不是一个非常有意义的名称,方法应该有有意义的名称。这个答案不是正确的方法,但它确实回答了你的问题。

答案 2 :(得分:0)

你可以使用一个属性。

public int S
{ 
      get {return GameObject.Find("colorswitchred (" + id.ToString() + ")").transform.GetComponent<Main>().state;}
      set 
      {
       GameObject.Find("colorswitchred (" + id.ToString() + ")").transform.GetComponent<Main>().state = value;

      }

}