c#和op有什么关系啊。
你也用bcb??

解决方案 »

  1.   

    Delphi难道不能在自己的类中创建自己的对象吗?
      

  2.   

    类的感念在哪儿都是通用的,不管是在
    Java,C#还是在C++,只是实现时的具体代码有所不同而已!
    C#的访问属性用起来很简单的,稍微看一下书即可!
      

  3.   

    to fish365(小飞鱼):
    用起来总是会用,但说起来就是说不清楚,是不是这样?那个高手能帮忙打通我的经脉。
      

  4.   

    在自己的方法里创建自己的对象很正常啊,singleton设计模式就是这么做的。下面贴一段singleton模式的实现:现在让我们来看看singleton模式实现。constructor TProgressor.Create;begin  inherited Create;  raise Exception.CreateFmt('Access class %s through Instance only',       [ClassName]);end; constructor TProgressor.CreateInstance;begin  inherited Create;end; destructor TProgressor.Destroy;begin  if AccessInstance(0) = Self then AccessInstance(2);  inherited Destroy;end; class function TProgressor.AccessInstance(Request: Integer): TProgressor;  const FInstance: TProgressor = nil;begin  case Request of    0 : ;    1 : if not Assigned(FInstance) then FInstance := CreateInstance;    2 : FInstance := nil;  else    raise Exception.CreateFmt('Illegal request %d in AccessInstance',         [Request]);  end;  Result := FInstance;end; class function TProgressor.Instance: TProgressor;begin  Result := AccessInstance(1);end; class procedure TProgressor.ReleaseInstance;begin  AccessInstance(0).Free;end; procedure TProgressor.SetProgress(Value: Integer);begin»加入实现代码end; procedure TProgressor.StartProgress;begin»加入实现代码end; 此模式的密秘在AccessInstance方法,AccessInstance方法使用了常量来存放实例。由于Delphi不支持静态类字段的原因,你必需使用此方法。AccessInstance根据请求的参数来确认不同的返回方式,返回当前实例(Request = 0),创建一个实例(Request = 1),重置实例。Delphi 2/3/4/5/6中,你必须将编译器设置$J+来支持形式常量(参见Delphi在线帮助)将CreateInstance设成保护方法(protected),我们确保了其它类不能调用类的构造器。但由于构造函数本身为虚函数的原因,它可以被后代重载。例中,当第一次调用类实例时将确认类的具体类型。唯一需要你手动添加的代码是:在单元的initialization或finalization加入清除代码。