View Full Version : مبتدی: تعریف اشیا
  
leilast
دوشنبه 02 مرداد 1396, 12:51 عصر
سلام
من مدتی هست که کد ننوشتم و مباحث شی ء گرایی رو فراموش کردم. الان یک کد خیلی ساده برای شروع نوشتم اما موقع اجرا چیزی اجرا نمیشه.
میشه بگید اشکال کجاس؟
ublic Class library    Private Name_Book As String
    Private Subject_book As String
    Private Id_book As Integer
    Private Count As Integer = 5
    Private Capacity As Integer
    Public Sub Insert()
        Count += 1
        If Capacity > 10 Then
            Label1.Text = "full"
            Count -= 1
        Else
            Label1.Text = "insert is done"
            Label2.Text = Count
        End If
    End Sub
    Public Sub library_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    End Sub
    Private Sub BtnInsert_Click(sender As Object, e As EventArgs) Handles BtnInsert.Click
        Dim libr As New library
        libr.Insert()
    End Sub
End Class
peyman_Esi
دوشنبه 02 مرداد 1396, 13:52 عصر
میشه لطفا اروری که میده را بنویسی
leilast
دوشنبه 02 مرداد 1396, 15:05 عصر
اروری نمیده ولی InsertBottunرو که میزنم هیچ اتفاقی نمیفته. در واقع متد insert اصلا اجرا نمی شه.
leilast
دوشنبه 02 مرداد 1396, 18:16 عصر
من کمی کدم رو ویرایش کردم اما باز هم چیزی اجرا نشد
می خواستم اگر ممکنه پیشنهادی بدید تا من از این مرحله رد شم.
اگر نمونه کد کوچک دارین که واضح باشه من خودم متوجه بشم هم خوبه.
اینم کد اصلاح شده
Public Class Library
    Private Name_Book As String
    Private Subject_book As String
    Private Id_book As Integer
    Private Count As Integer = 5
    Public Event Full()
    Public Property Capacity() As Integer
        Get
            Return Capacity
        End Get
        Set(value As Integer)
            If value = Count Then RaiseEvent Full()
            Label1.Text = "full"
        End Set
    End Property
    Public Sub Insert()
        While Count < 10
            Count += 1
            TextBox1.Text = "insert is done"
        End While
    End Sub
    Public Sub Library_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim Capacity As Integer = 10
    End Sub
    Private Sub BtnInsert_Click(sender As Object, e As EventArgs) Handles BtnInsert.Click
        Dim libr As New Library
        libr.Insert()
    End Sub
End Class
محمد آشتیانی
دوشنبه 02 مرداد 1396, 22:50 عصر
سلام
پروژتون رو ضمیمه کنید لطفا
leilast
سه شنبه 03 مرداد 1396, 10:39 صبح
متاسفانه چند بار تلاش کردم اما پروژه ضمبمه نمیشه چون حجمش زیاده.
من با ویژوال استودیو ۲۰۱۷ نوشتم.
امکانش هست ایمیلتون رو بدید تا براتون بفرستم.
محمد آشتیانی
چهارشنبه 04 مرداد 1396, 00:11 صبح
سلام
اول اینکه کلاس Library رو در یک کلاس مجزا بسازید و نه در کلاس فرم
Public Class Library
   
    Public Property Capacity() As Integer
    Private Property Count as Integer = 5
    
    Public Function Insert() As string
        count += 1
        If count > Capacity Then
            Return "Full"
        Else
            Return "Insert is done"
        End If
    End Function
End Class
در مرحله بعد ، طبیعیه وقتی شما در رویداد کلیک باتن یک instance از کلاس می سازید ، شمارنده شما مقدارش با هر کلیک اضافه نمیشه ، بنابراین instance کلاس library باید در سطح فرم باشه و با هرکلیک متد insert فراخوانی بشه صرفا (مثال زیر)
Public Class Form1
    Private libraryClass As New Library
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        libraryClass.Capacity = 10
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Label1.Text = libraryClass.Insert()
    End Sub
End Class
نیازی به فرستادن پروژه نیست.
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.