Реализация IsEmpty у струкур
От: SelfCoder  
Дата: 25.11.04 14:17
Оценка:
К примеру есть код

public struct PointD
{
    public Double X, Y;

    public PointD(Double x, Double y)
    {
        X = x;
        Y = y;    
    }
}


Как лучше реализовать свойство IsEmpty и как реализуется такое

point = PointD.Empty;
Re: Реализация IsEmpty у струкур
От: V.Petrovski Беларусь  
Дата: 25.11.04 15:09
Оценка:
Здравствуйте, SelfCoder, Вы писали:

SC>Как лучше реализовать свойство IsEmpty и как реализуется такое


SC>
SC>point = PointD.Empty;
SC>


public struct PointD
{
    public static readonly PointD Empty = new PointD();
    public Double X, Y;

    public PointD(Double x, Double y)
    {
        X = x;
        Y = y;    
    }
    public bool IsEmpty
    {
        get
        {
            return (X == 0 && Y == 0);
        }
    }    
}
... << RSDN@Home 1.1.4 @@subversion >>
Re[2]: Реализация IsEmpty у струкур
От: SelfCoder  
Дата: 25.11.04 19:07
Оценка:
Здравствуйте, V.Petrovski, Вы писали:
VP>    public bool IsEmpty
VP>    {
VP>        get
VP>        {
VP>            return (X == 0 && Y == 0);
VP>        }
VP>    }    
VP>}
VP>

а если x=0 y=0 — возможные значения
а как же
point = PointD.Empty;
Re[3]: Реализация IsEmpty у струкур
От: krasin Россия  
Дата: 25.11.04 22:03
Оценка: +1
Можно попробовать так, хотя, возможно, это и не слишком красивый вариант:

public struct PointD
{
  private int initFlag;

  private double x;
  private double y;

  private bool IsInitialized
  {
     get
     {
        return (initFlag == 0);
     }
     set
     {
        initFlag = 1;
     }
  }

  public PointD(double x, double y)
  {
     IsInitialized = true;
     this.x = x;
     this.y = y;
  }

  public bool IsEmpty
  {
    get
    {
       return (!IsInitialized);
    }
  }
  
  public PointD Empty
  {
    get
    {
       return new PointD();
    }
  }
}
Re[3]: Реализация IsEmpty у струкур
От: zhk  
Дата: 26.11.04 07:49
Оценка:
Здравствуйте, SelfCoder, Вы писали:

SC>а если x=0 y=0 — возможные значения


Double.NaN — "невозможное" значение.
... << RSDN@Home 1.1.3 stable >>
Re[3]: Реализация IsEmpty у струкур
От: master_of_shadows Беларусь  
Дата: 26.11.04 12:45
Оценка:
Здравствуйте, SelfCoder, Вы писали:

SC>а если x=0 y=0 — возможные значения

SC>а как же
SC>
SC>point = PointD.Empty;
SC>


Системные Point, Rectangle реализованны именно так. Хотя мне то же это кажеться ошибочным.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.