2015-07-20 146 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();