ITK35Zone
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
ITK35Zone


 
Trang ChínhTrang Chính  Latest imagesLatest images  Đăng kýĐăng ký  Đăng Nhập  
Chào mừng các bạn đã đến với diễn đàn ITK35Zone - Lớp CNTT K35 Trường Đại học Sư phạm TP.HCM
Hiện diễn đàn đang bị lỗi kĩ thuật, mong mọi người thông cảm. BQT sẽ cố gắng khắc phục trong thời gian sớm nhất...

Share | 

 

 giai thich ham update trong c#

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
giai thich ham update trong c# EmptyTue Nov 09, 2010 2:14 pm

biencute
Userbiencute Người này hiện đang:
Level: Ma Mới
Danh vọng:18


Ma Mới

biencute

Ma Mới

Giới tính : Nữ
Đến từ : tphcm
Join : 08/11/2010
Bài gửi : 18
HUMOR : vui ve,thich chuyen cuoi

Thú cưng
.:

Bài gửiTiêu đề: giai thich ham update trong c#

 
class HinhChuNhat
{
#region field
protected double d;
protected double r;
protected double cv;
protected double dt;
#endregion

#region property

///
/// Trả về giá trị chiều dài của hình chữ nhật này
///

public double ChieuDai
{
get { return d; }
set
{
if (value <= 0)
return;
if (value < r)
return;
d = value;
Update(); : hàm update () co nghia la gi ?va khi nao dung toi no?

}

///
/// Trả về giá trị chiều rộng của hình chữ nhật này
///

public double ChieuRong
{
get { return r; }
set
{
if (value <= 0)
return;
if (value > d)
return;
r = value;
Update();
}
}

///
/// Trả về giá trị chu vi của hình chữ nhật này
///

public double ChuVi
{
get { return cv; }
}

///
/// Trả về giá trị diện tích của hình chữ nhật này
///

public double DienTich
{
get { return dt; }
}

#endregion

#region contructor

///
/// Hàm khởi tạo với 2 tham số
///

/// Giá trị chiều dài của hình chữ nhật cần khởi tạo
/// Giá trị chiều rộng của hình chữ nhật cần khởi tạo
public HinhChuNhat(double dai, double rong)
{
this.d = dai;
this.r = rong;
Update();
}

///
/// Khởi tạo mặc định hình chữ nhật có dài = rộng = 1 đơn vị
///

public HinhChuNhat()
: this(1, 1)
{ }

#endregion

#region method
///
/// Tính chu vi của hình chữ nhật
///

/// Giá trị chu vi
protected double TinhChuVi()
{
return (d + r) * 2;
}

///
/// Tính diện tích của hình chữ nhật
///

/// Giá trị diện tích
protected double TinhDienTich()
{
return (d * r);
}

///
/// Tính lại diện tích và chu vi
///

protected void Update()
{
cv = TinhChuVi();
dt = TinhDienTich();
}

#endregion
}
}
hàm update trong truong hop nay co nghia la gi va khi nao minh dung toi no?



giai thich ham update trong c# EmptyTue Nov 09, 2010 4:31 pm

blackrose4s
Userblackrose4s Người này hiện đang:
Level: Người Nhà
Danh vọng:312


Người Nhà

blackrose4s

Người Nhà

Giới tính : Nam
Đến từ : không gian
Join : 10/11/2009
Bài gửi : 312
HUMOR : không rõ ràng

Thú cưng
.:

Bài gửiTiêu đề: Re: giai thich ham update trong c#

 
Đầu tiên, bạn phải thấy phương thức Update() trong lớp HinhChuNhat
Code:
// Tính lại diện tích và chu vi
protected void Update()
{
cv = TinhChuVi();
dt = TinhDienTich();
}

Ok ! Mình sẽ giải thích chi tiết về phương thức này :

protected void Update()
Khai báo phương thức Update()
Tầm vực: protected ( chỉ sử dụng được bên trong lớp HinhChuNhat và lớp con của nó )
Kiểu dữ liệu trả về: void ( tức không trả về giá trị gì )
Tham số: Phương thức không nhận tham số ( bên trong 2 dấu ( ) để trống )

{
cv = TinhChuVi();
dt = TinhDienTich();
}

Gọi phương thức TinhChuVi() và gán giá trị trả về của phương thức TinhChuVi() cho biến cv
Gọi phương thức TinhDienTich() và gán giá trị trả về của phương thức TinhDienTich() cho biến dt


Trả lời câu hỏi 1 : hàm update trong trường hợp này là gì và khi nào dùng tới nó ?
+ Trước tiên ,bạn nên gọi nó là phương thức nhé ! Gọi hàm cũng không sai nhưng không đúng sách giáo khoa.

+ Bạn đừng suy nghĩ theo kiểu giống như cái comment //Tính lại diện tích và chu vi mà nên hiểu là bất cứ khi nào phương thức Update() được gọi nó sẽ thực hiện tất cả các lệnh bên trong nó. Trong trường hợp này , nó sẽ tiếp tục gọi 2 phương thức khác . Hai biến cv và dt tất nhiên sẽ được nhận giá trị mới sau khi phương thức TinhChuVi() và TinhDienTich() được gọi.

Trả lời câu hỏi 2:

Code:
/// Trả về giá trị chiều dài của hình chữ nhật này
public double ChieuDai
{
get { return d; }
set
{
if (value <= 0)
return;
if (value < r)
return;
d = value;
Update();  : hàm update () co nghia la gi ?va khi nao dung toi no?
}
)

Hết cái đống này là khai báo thuộc tính ChieuDai của lớp HinhChuNhat

Mình nói luôn đặc điểm nhận biết nó là thuộc tính : Không có 2 cái dấu ngoặc ( ) sau tên thuộc tính. Thuộc tính thực ra chỉ là người đại diện cho một biến . Điểm khác là với một thuộc tính, ta điều khiển hoàn toàn cách nhận và trả về giá trị mà một biến không thể làm được . Đây chính là sự mềm dẻo và sức mạnh của lập trình hướng đối tượng . Có thể nói nhờ thuộc tính mà ta mô tả được hầu hết các sự vật trong vũ trụ này.

public double ChieuDai
Khai báo thuộc tính ChieuDai
Tầm vực: Tất nhiên là phải public rồi ^^
Kiểu dữ liệu ( trả về và nhận vào ) : double

get { return d; }
Trả về giá trị của biến d khi thuộc tính ChieuDai được gọi ( có thể là xuất ra màn hình hay gán giá trị cho một biến nào đó,… )

set
{
if (value <= 0)
return;

Bên trong set ,từ khóa value làm đại diện cho tất cả giá trị mà thuộc tính nhận vào. Khi gặp từ khóa return thì lập tức kết thúc việc nhận giá trị (set)
Nếu thuộc tính nhận giá trị <= 0 thì return (giá trị hiện thời của biến d sẽ không thay đổi ) .

if (value < r)
return;
d = value;
Update();
}
}

Nếu thuộc tính ChieuDai nhận giá trị nhỏ hơn biến r (xét vào thời điểm đó) thì return ( giá trị hiện thời của biến d sẽ không thay đổi )
Gán giá trị của value cho biến d ( việc này thực hiện được khi 2 điều kiện trên đều không xảy ra )
Gọi phương thức Update() để tính lại chu vi, diện tích . ( Vì chiều dài thay đổi nên phải gán lại giá trị mới cho 2 biến cv và dt ) .


Rolling Eyes



giai thich ham update trong c# EmptyTue Nov 09, 2010 4:57 pm

blackrose4s
Userblackrose4s Người này hiện đang:
Level: Người Nhà
Danh vọng:312


Người Nhà

blackrose4s

Người Nhà

Giới tính : Nam
Đến từ : không gian
Join : 10/11/2009
Bài gửi : 312
HUMOR : không rõ ràng

Thú cưng
.:

Bài gửiTiêu đề: Re: giai thich ham update trong c#

 
Cái tiêu đề : giai thich ham update trong c#
Chả có cái hàm update nào trong C# đâu bạn ơi !
Các bạn học lập trình bị nhầm lẫn nhiều quá ! Chính vì những cái nhầm lẫn nho nhỏ ấy đã khiến cho tư duy bị lệch lạc . Lập trình mà tư duy không đúng hướng thì tất yếu dẫn đến không giải quyết được vấn đề



giai thich ham update trong c# EmptyTue Nov 09, 2010 10:29 pm

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: giai thich ham update trong c#

 
Code:
protected void Update()
{
cv = TinhChuVi();
dt = TinhDienTich();
}



giai thich ham update trong c# EmptyWed Nov 10, 2010 3:22 pm

biencute
Userbiencute Người này hiện đang:
Level: Ma Mới
Danh vọng:18


Ma Mới

biencute

Ma Mới

Giới tính : Nữ
Đến từ : tphcm
Join : 08/11/2010
Bài gửi : 18
HUMOR : vui ve,thich chuyen cuoi

Thú cưng
.:

Bài gửiTiêu đề: sử dụng windows form

 
oh giờ thì mình hiểu rồi cảm ơn ngen!
giờ mình có một câu hỏi khác
câu thứ nhất có thể kết hợp code trong console và windows form được không?
câu thứ hai mình có cái code này nhưng không biết sai chỗ nào mấy bạn giúp mình nha
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace veba_covua
{ class bancovua : Form
{
public static void Main()
{
Application.Run(new bancovua());
}
public bancovua()
{
Text = "bancovua";
BackColor = SystemColors.Window;
ForeColor = SystemColors.WindowText;
ResizeRedraw = true;
}
protected override void onmousemove(MouseEventArgs mea)
{
int x = Math.Max(0,
Math.Min(3, mea.x / (ClientSize.Width / 4)));
int y = Math.Max(0,
Math.Min(6, mea.y / (ClientSize.Height / 7)));
Cursor.Current = acursor[4 * y + x];
}
protected override void onpaint(PaintEventArgs pea)
{
Graphics g=pea.Graphics;
Brush brush=new SolidBrush(ForeColor);
Pen pen=new Pen(ForeColor);
StringFormat str=new StringFormat();
str.LineAlignment=str.Alignment=StringAlignment.Center;
for (int y=0;y<8;y++)
for(int x=0;x<8;x++)
{
Rectangle rect =Rectangle.FromLTRB(
x*ClientSize.Width/4,
y*ClientSize.Height/7,
(x+1)*ClientSize.Width/4,
(y+1)*ClientSize.Height/7);
g.DrawRectangle(pen,rect);
g.DrawString(astrcursor[4*y+x],
Font,brush,rect,str);
}

}
}
} Shocked



giai thich ham update trong c# EmptyWed Nov 10, 2010 6:51 pm

Regulus™
UserRegulus™ Người này hiện đang:
Level: Tổng điều hành
Danh vọng:758


Tổng điều hành

Regulus™

Tổng điều hành

http://itk35.tk
Giới tính : Nam
Đến từ : ...
Join : 06/11/2009
Bài gửi : 758
HUMOR : Nghe nhạc.. Computer

Thú cưng
.:

Bài gửiTiêu đề: Re: giai thich ham update trong c#

 
mình chưa lập trình Form bằng C# nên ko rành lắm...
nhưng mún code chạy dc trong console và Windows thì trong class bạn chỉ nên để ý tới ý tưởng thực hiện, tuyệt đối ko sử dụng những câu xuất ra như Console.Write hay bất kì câu nào sử dụng thư viện console


mình chưa lập trình Form bằng C# nên ko dám sửa ...
chỉ thấy dòng này hơi kì Wink)

Text = "bancovua";

Very Happy



giai thich ham update trong c# Empty

UserSponsored content Người này hiện đang:
Level:
Danh vọng:



Sponsored content

Bài gửiTiêu đề: Re: giai thich ham update trong c#

 


 

giai thich ham update trong c#

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
ITK35Zone :: Hỏi Đáp, Góp ý-
 
Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất