CannibalSmith ([info]cannibalsmith) rakstīja [info]koderi kopienā,
@ 2009-03-12 16:56:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
.net un eventi
C# viss kompilējas. Vai patterns pareizi uzrakstīts?
using System.ComponentModel;

public class Zomg : INotifyPropertyChanged
{
	public event EventHandler Gloop;
	public event PropertyChangedEventHandler PropertyChanged;
	
	protected void OnGloop(EventArgs e)
	{
		if (Gloop != null) Gloop(this, e);
	}
	
	protected void OnPropertyChanged(PropertyChangedEventArgs e)
	{
		if (PropertyChanged != null) PropertyChanged(this, e);
	}
}

C++/CLI nez kamdēļ kliedz, ka kaut kādas add un remove funkcijas nav implementētas PropertyChangedEventHandler eventam. Vai patterns pareizi uzrakstīts?
using namespace System::ComponentModel;

publc ref class Zomg : public INotifyPropertyChanged
{
public:
	event EventHandler^ Gloop;
	virtual event PropertyChangedEventHandler^ PropertyChanged; // virtual keywordu vajadzēja!
	
protected:
	virtual void OnGloop(EventArgs^ e)
	{
		Gloop(this, e);
	}
	
	virtual void OnPropertyChanged(PropertyChangedEventArgs^ e)
	{
		PropertyChanged(this, e);
	}
};


(Lasīt komentārus) - (Ierakstīt jaunu komentāru)


[info]cannibalsmith
2009-03-12 19:28 (saite)
Kad es rakstu if (PropertyChanged != nullptr), viņš kliedz, ka usage requires 'Application1::Zomg::PropertyChanged' to be a data member.

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]bubu
2009-03-12 19:33 (saite)
Ah pareiz, piemirsu. Uz nepiešķirtu eventu vajadzēja pārbaudīt MC++'ā (.NET 1.1). C++/CLI vairs nevajag - viss notiksies automātiski.

(Atbildēt uz šo) (Iepriekšējais)


(Lasīt komentārus) -

Neesi iežurnalējies. Iežurnalēties?