چگونگی نوشتن یک "کلاس"

daland

Member
سلام
دوستانی که با ویژوال بیسیک آشنایی دارن بیزحمت یه کمکی بکنن.ممنون میشم
یه کد خیلی ساده میخوام که:
توی کلاس car باشه
و متغیرهاش هم اینها:
name
model
color
no-drives

دقیق نمیدونم سوالم کامله یا نه. اگه کسی چیزی میدوه بگه لطفا
 

the_king

مدیرکل انجمن
سلام
دوستانی که با ویژوال بیسیک آشنایی دارن بیزحمت یه کمکی بکنن.ممنون میشم
یه کد خیلی ساده میخوام که:
توی کلاس car باشه
و متغیرهاش هم اینها:
name
model
color
no-drives

دقیق نمیدونم سوالم کامله یا نه. اگه کسی چیزی میدوه بگه لطفا

no-drives قراره چی باشه؟ در هر صورت کاراکتر - که نمی تونه جزئی از اسم متغیر یا متدی باشه.

تعریف کلاس در ویژوال بیسیک 6 اینطوریه :

یک Class Module به اسم Car بسازید و کد های زیر رو داخلش بنویسید :
کد:
Private mName As String, mModel As String, mColor As String

Public Property Get Name() As String
    Name = mName
End Property

Public Property Let Name(ByVal Value As String)
    mName = Value
End Property

Public Property Get Model() As String
    Model = mModel
End Property

Public Property Let Model(ByVal Value As String)
    mModel = Value
End Property

Public Property Get Color() As String
    Color = mColor
End Property

Public Property Let Color(ByVal Value As String)
    mColor = Value
End Property

Public Function FullName() As String
    FullName = mName & " " & mModel & " (" & mColor & ")"
End Function

مثال از نحوه استفاده از کلاس Car در ویژوال بیسیک 6 :
کد:
    Dim c As New Car
    c.Name = "Bugatti"
    c.Model = "Veyron"
    c.Color = "Black"
    MsgBox c.FullName

تعریف کلاس در ویژوال بیسیک Net. اینطوریه :
کد:
Public Class Car
    Private mName As String, mModel As String, mColor As String

    Public Property Name() As String
        Get
            Name = mName
        End Get
        Set(ByVal value As String)
            mName = value
        End Set
    End Property

    Public Property Model() As String
        Get
            Model = mModel
        End Get
        Set(ByVal value As String)
            mModel = value
        End Set
    End Property

    Public Property Color() As String
        Get
            Color = mColor
        End Get
        Set(ByVal value As String)
            mColor = value
        End Set
    End Property

    Public Function FullName() As String
        FullName = mName + " " + mModel + " (" + mColor + ")"
    End Function
End Class

مثال از نحوه استفاده از کلاس Car در ویژوال بیسیک Net. اینطوریه :
کد:
        Dim c As New Car
        c.Name = "Bugatti"
        c.Model = "Veyron"
        c.Color = "Black"
        MessageBox.Show(c.FullName)
 

daland

Member
لطف کردی دوست عزیز..ممنون
no-drives رو یادم نیست.. طریقه کلاس تعریف کردنش مثل بقیه هست دیگه؟ اگه آره که میتونم بعدا خودم از روی گفته های شما براش تعریف کنم..
الان این MsgBox c.FullName کل مشخصات رو نشون میده دیگه؟ درسته ؟
اگه یه توضیح مختصر بدید ممنون میشم.
 

daland

Member
راستی احتمالا یه کد دیگه با همین مشخصات لازم داشته باشم. ولی 2تاش باید از نوع integer باشه. همون string رو integer کنم کافیه یا تغییرات دیگه ای هم میخواد ؟
 

daland

Member
راستی احتمالا یه کد دیگه با همین مشخصات لازم داشته باشم. ولی 2تاش باید از نوع integer باشه. همون string رو integer کنم کافیه یا تغییرات دیگه ای هم میخواد ؟
خب !
name باید string باشه
بقیه هم همه integer

تغییرات خاصی لازمه ؟
 

the_king

مدیرکل انجمن
لطف کردی دوست عزیز..ممنون
no-drives رو یادم نیست.. طریقه کلاس تعریف کردنش مثل بقیه هست دیگه؟ اگه آره که میتونم بعدا خودم از روی گفته های شما براش تعریف کنم..
الان این MsgBox c.FullName کل مشخصات رو نشون میده دیگه؟ درسته ؟
اگه یه توضیح مختصر بدید ممنون میشم.
بله، همانطور که برای Model و Name و Color نوشته شده می توانید برای هر مشخصه دیگری هم با همان روال
کد نویسی کنید. سه بخش لازم داره :
1) تعریف یک متغیر Private از اون نوع داده، مثل mName و mModel و mColor
2) تعریف یک تابع Property Get که مقدار اون متغیر رو بر می گردونه.
3) تعریف یک روتین Property Let که مقدار اون متغیر رو عوض می کنه.

راستی احتمالا یه کد دیگه با همین مشخصات لازم داشته باشم. ولی 2تاش باید از نوع integer باشه. همون string رو integer کنم کافیه یا تغییرات دیگه ای هم میخواد ؟
بله، در هر سه بخش تعریف متغیر و Property Get و Property Set نوع داده رو عوض کنید.

خب !
name باید string باشه
بقیه هم همه integer

تغییرات خاصی لازمه ؟
همانطور که خودتان اشاره کردید، صرفا String ها رو به Integer تغییر دهید.
 

جدیدترین ارسال ها

بالا