2015-07-20 111 views
0

我正在尋找用於更改另一個類中的變量值的最佳編程實踐。全局變量比。設置功能

例如,如果我有一個布爾值來確定一個敵人是否面向右邊,那麼最好的方法是什麼?

一個

*outside of Class* 
Class.Right = false; 

*inside of Class* 
public Right = true; 

*outside of Class* 
Class.setRight(false); 

*inside of Class* 
private Right = true; 
public void setRight (right) { 
    Right = right; 
} 

而且,我讀過,你應該避免使用全局變量都在一起,但你應該在這種情況下使用它,因爲它的用於課堂中的多個功能,對嗎?

+2

這不是一個全局變量,它是一個公共成員變量。在C#中設置函數沒有意義,因爲您可以使用屬性。 –

+0

好吧我會堅持A.我不認爲在這個級別實現每個變量的屬性是有意義的。 –

回答

0

使用枚舉,你可以以任何方式設置它(我們需要知道實現的細節以提供特定的建議)。

public enum DirectionType{ Right, Left }; 

public class Enemy 
{ 
    public DirectionType Direction{ get; set; } 

    public void HoneInOnHero() 
    { 
     //Hero's function can help determine position relative to the enemy. 
     this.Direction = Hero.GetRelativeDirection(this); 
    } 
} 

var enemy = new Enemy(); 
enemy.Direction = DirectionType.Left; 
//or... 
if(attackMode) 
    enemy.HoneInOnHero();