ورود

View Full Version : خطای مقدار دهی پراپرتی های کلاس



klinton
پنج شنبه 10 خرداد 1403, 18:15 عصر
سلام دوستان من وقتی با سی شارپ پراپرتی های یه کلاسی رو مقدار دهی میکنم مشکلی ندارم ولی وقتی توی vb این کارو میکنم خطا میده
کد سی شارپ


var st =new studend

name="ali"
lname="karimi"


کد vb


dim st as new studend with

.name="ali"
l.lname="katimi"
{



متن خطا :
visual basic 16 does not assigning to
or passing byref

properties with init only setters

ROSTAM2
جمعه 11 خرداد 1403, 03:46 صبح
سلام دوستان من وقتی با سی شارپ پراپرتی های یه کلاسی رو مقدار دهی میکنم مشکلی ندارم ولی وقتی توی vb این کارو میکنم خطا میده
کد سی شارپ


var st =new studend

name="ali"
lname="karimi"


کد vb


dim st as new studend with

.name="ali"
l.lname="katimi"
{



متن خطا :
visual basic 16 does not assigning to
or passing byref

properties with init only setters

,سلام بنظر خطای دستوریه که پشتیبانی نمی شه با نسخه ویژوال بیسیک

mazoolagh
جمعه 11 خرداد 1403, 18:17 عصر
سلام دوستان من وقتی با سی شارپ پراپرتی های یه کلاسی رو مقدار دهی میکنم مشکلی ندارم ولی وقتی توی vb این کارو میکنم خطا میده


سلام و روز خوش
این کدی که پیوست کردین هم #C هم VB.Net هر دو اشتباه هست:

student st= new student();
st.name= "ali";
st.lname= "karimi";
یا
student st= new student {name= "ali" , lname= "karimi"};

و کد VB.Net

dim st as new student with {.name = "ali", .lname = "karimi"}

پرستو پارسایی
جمعه 11 خرداد 1403, 21:26 عصر
سلام دوستان من وقتی با سی شارپ پراپرتی های یه کلاسی رو مقدار دهی میکنم مشکلی ندارم ولی وقتی توی vb این کارو میکنم خطا میده
کد سی شارپ


var st =new studend

name="ali"
lname="karimi"


کد vb


dim st as new studend with

.name="ali"
l.lname="katimi"
{



متن خطا :
visual basic 16 does not assigning to
or passing byref

properties with init only setters





این خطا به دلیل اینه که در VB.NET، ویژگی‌هایی که فقط setter مقداردهی اولیه (init only) دارن ، نمی‌تونن به صورت مستقیم مقداردهی بشن یا به عنوان پارامتر به توابع به صورت byref ارسال بشن. به جای این کار، باید از روش‌های دیگه ای برای مقداردهی این نوع ویژگی‌ها استفاده کنین.

یک راه حل برای این مشکل اینه که از constructor کلاس برای مقداردهی اولیه ویژگی‌ها استفاده کنین .

Public Class Student
Public Property Name As String
Public Property LastName As String

Public Sub New(ByVal name As String, ByVal lastName As String)
Me.Name = name
Me.LastName = lastName
End Sub
End Class

Dim st As New Student("ali", "karimi")

ROSTAM2
شنبه 12 خرداد 1403, 05:29 صبح
سلام به همه

ایجاد متغیری با خصوصیات دلخواه بدون تعریف یک کلاس خاص در ویژوال بیسیک ب این صورته:

' Variable product is an instance of a simple anonymous type.
Dim product = New With {Key .Name = "paperclips", .Price = 1.29}



' Variable product1 is an instance of a simple anonymous type.
Dim product1 = New With {.Name = "paperclips", .Price = 1.29}
' -or-
' product2 is an instance of an anonymous type with key properties.
Dim product2 = New With {Key .Name = "paperclips", Key .Price = 1.29}


Anonymous Types - Visual Basic | Microsoft Learn (https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/objects-and-classes/anonymous-types)

ویدیوی آموزشی:
Anonymous Types (Visual Basic) (https://www.aparat.com/v/lghd4rn)
(https://www.aparat.com/v/lghd4rn)