không gian tên
Sự kiện BaseClass
{
sử dụng
Hệ thống;
sử dụng
Hệ thống.Bộ sưu tập.Chung;
công cộng
lớp học
ShapeEventArgs: Sự kiệnArgs
{
riêng tư
gấp đôi
khu vực mới;
công cộng
ShapeEventArgs(
gấp đôi
ngày)
{
khu vực mới = d;
}
công cộng
gấp đôi
Khu vực mới
{
lấy
{
trở lại
khu vực mới; }
}
}
công cộng
tóm tắt
lớp học
Hình dạng
{
được bảo vệ
gấp đôi
khu vực;
công cộng
gấp đôi
Khu vực
{
lấy
{
trở lại
khu vực; }
bộ
{ diện tích = giá trị; }
}
công cộng
sự kiện
EventHandler Thay đổi hình dạng;
công cộng
tóm tắt
vô hiệu
Vẽ tranh();
được bảo vệ
ảo
vô hiệu
OnShapeChanged(ShapeEventArgs và)
{
Trình xử lý EventHandler = ShapeChanged;
nếu như
(người xử lý !=
vô giá trị
)
{
người xử lý(
cái này
, đ);
}
}
}
công cộng
lớp học
Hình tròn: Hình dạng
{
riêng tư
gấp đôi
bán kính;
công cộng
Vòng tròn(
gấp đôi
ngày)
{
bán kính = d;
diện tích = 3,14 * bán kính * bán kính;
}
công cộng
vô hiệu
Cập nhật(
gấp đôi
ngày)
{
bán kính = d;
diện tích = 3,14 * bán kính * bán kính;
TrênShapeChanged(
mới
ShapeEventArgs(diện tích));
}
được bảo vệ
ghi đè
vô hiệu
OnShapeChanged(ShapeEventArgs và)
{
căn cứ
.OnShapeChanged(e);
}
công cộng
ghi đè
vô hiệu
Vẽ tranh()
{
Console.WriteLine(
"Vẽ một vòng tròn"
);
}
}
công cộng
lớp học
Hình chữ nhật: Hình dạng
{
riêng tư
gấp đôi
chiều dài;
riêng tư
gấp đôi
chiều rộng;
công cộng
Hình chữ nhật(
gấp đôi
chiều dài,
gấp đôi
chiều rộng)
{
cái này
.length = chiều dài;
cái này
.width = chiều rộng;
diện tích = chiều dài * chiều rộng;
}
công cộng
vô hiệu
Cập nhật(
gấp đôi
chiều dài,
gấp đôi
chiều rộng)
{
cái này
.length = chiều dài;
cái này
.width = chiều rộng;
diện tích = chiều dài * chiều rộng;
TrênShapeChanged(
mới
ShapeEventArgs(diện tích));
}
được bảo vệ
ghi đè
vô hiệu
OnShapeChanged(ShapeEventArgs và)
{
căn cứ
.OnShapeChanged(e);
}
công cộng
ghi đè
vô hiệu
Vẽ tranh()
{
Console.WriteLine(
"Vẽ hình chữ nhật"
);
}
}
công cộng
lớp học
Hình dạngContainer
{
Danh sách _list;
công cộng
Hình dạng Container()
{
_danh sách =
mới
Danh sách();
}
công cộng
vô hiệu
AddShape(Hình dạng)
{
_list.Thêm(s);
s.ShapeChanged += Xử lýShapeChanged;
}
riêng tư
vô hiệu
Xử lý hình dạng thay đổi(
sự vật
người gửi, ShapeEventArgs e)
{
Hình dạng s = (Hình dạng)người gửi;
Console.WriteLine(
"Đã nhận sự kiện. Diện tích hình dạng hiện là {0}"
, e.NewArea);
s. Vẽ();
}
}
lớp học
Bài kiểm tra
{
tĩnh
vô hiệu
Chủ yếu(
sợi dây
[] đối số)
{
Hình tròn c1 =
mới
Hình tròn(54);
Hình chữ nhật r1 =
mới
Hình chữ nhật(12, 9);
ShapeContainer sc =
mới
ShapeContainer();
sc.AddShape(c1);
sc.AddShape(r1);
c1.Cập nhật(57);
r1.Cập nhật(7, 7);
Hệ thống.Console.WriteLine(
"Nhấn phím bất kỳ để thoát."
);
System.Console.ReadKey();
}
}
}
Tôi là một lập trình viên xuất sắc, rất giỏi!