C\#표준 이벤트 스 트림 인 스 턴 스 코드
public class EventStandard
{
public class Clothes {
/// <summary>
///
/// </summary>
public string Id { get; set; }
/// <summary>
///
/// </summary>
public string Name { get; set; }
/// <summary>
///
/// </summary>
private double _price;
public double Price {
get { return this._price; }
set {
PriceRiseHandler?.Invoke(this, new PriceEventArgs()
{
OldPrice = this._price,
NewPrice = value
});
this._price = value;
}
}
/// <summary>
///
/// </summary>
public event EventHandler PriceRiseHandler;
}
/// <summary>
///
/// </summary>
public class PriceEventArgs : EventArgs
{
public double OldPrice { get; set; }
public double NewPrice { get; set; }
}
public class TaoBao {
/// <summary>
///
/// </summary>
public void PublishPriceInfo(object sender, EventArgs e) {
Clothes clothes = (Clothes)sender;
PriceEventArgs args = (PriceEventArgs)e;
if (args.NewPrice < args.OldPrice)
Console.WriteLine($" : ,{clothes.Name} {args.OldPrice - args.NewPrice} , !");
else
Console.WriteLine(" : , ");
}
}
public class Consumer
{
/// <summary>
///
/// </summary>
public void Buy(object sender, EventArgs e)
{
Clothes clothes = (Clothes)sender;
PriceEventArgs args = (PriceEventArgs)e;
if (args.NewPrice < args.OldPrice)
Console.WriteLine($" : {args.OldPrice}, {args.NewPrice}, !");
else
Console.WriteLine($" : , ");
}
}
public static void Show()
{
Clothes clothes = new Clothes()
{
Id = "12111-XK",
Name = " ",
Price = 128
};
// :
clothes.PriceRiseHandler += new TaoBao().PublishPriceInfo;
clothes.PriceRiseHandler += new Consumer().Buy;
// ,
clothes.Price = 300;
}
}
호출:
clothes.Price = 300;
EventStandard.Show();
clothes.Price = 98;
EventStandard.Show();
이상 은 C\#표준 이벤트 스 트림 인 스 턴 스 코드 의 상세 한 내용 입 니 다.C\#표준 이벤트 스 트림 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.