PDA

View Full Version : سوال: ایراد این دستور چیه؟ دستور تبدیل به byte



baran_mehr
یک شنبه 16 خرداد 1389, 20:40 عصر
مشکل این دستور چیه؟

Dim b() As Byte =new CByte(st.Length)

Hossis
یک شنبه 16 خرداد 1389, 21:23 عصر
اولا که نوع Byte عددي هست و نمي تونه آرايه باشه
ثانيا: Byte از 0 تا 255 قبول مي کند و ممکن است سر ريز شود يعني Dt.lentgh بيش از 255 باشد.
بايد اين طور بنويسيد
dim b as Byte
if st.length<256 then
b=st.length
end if

Hossis
یک شنبه 16 خرداد 1389, 21:24 عصر
شايد هم اشکال از اين باشه که CByte روالي به نام New ندارد.

jahanmanesh
یک شنبه 16 خرداد 1389, 21:53 عصر
سلام
اولا new رو باید حذف کنی دوما همونطوری که گفتن cbyte مقداری یکتایی به ما میده و نمیتونه به آرایه تبدیل شه

baran_mehr
یک شنبه 16 خرداد 1389, 23:09 عصر
دوستان این یه کد سی شارپ هست که به ویبی میخوام تبدیلش کنم .

byte [] b=new byte[st.lenght]

sari-1369
یک شنبه 16 خرداد 1389, 23:12 عصر
دوستان این یه کد سی شارپ هست که به ویبی میخوام تبدیلش کنم .

byte [] b=new byte[st.lenght]


Dim b(st.lenght - 1) As Byte

Dim b(st.lenght - 1) As Byte

salehbagheri
یک شنبه 16 خرداد 1389, 23:25 عصر
Dim b(st.lenght - 1) As Byte

فكر نميكنم اين روش درست باشه.

به اين صورت عمل كنيد:


Dim B As Byte() = CType(St.Lenght, Byte())

sari-1369
یک شنبه 16 خرداد 1389, 23:43 عصر
این دوتا کد که شما با هم مقایسه کردی 2 تا کار مختلف رو انجام میدن .
کدی که من گزاشتم یه آرایه از نوع byte به طول st تعریف میکنه . اما کد شما طول St که یک عدد هستش رو توی حافظه b قرار میده .
اگر به کد C#‎ اون دوستمون دقت کنید ، متوجه میشید که مقصودشون گزینه اول بود .

موفق باشید

salehbagheri
دوشنبه 17 خرداد 1389, 13:22 عصر
این دوتا کد که شما با هم مقایسه کردی 2 تا کار مختلف رو انجام میدن .
کدی که من گزاشتم یه آرایه از نوع byte به طول st تعریف میکنه . اما کد شما طول St که یک عدد هستش رو توی حافظه b قرار میده .

بله، بنده در اين مورد اشتباه كردم.

چون براي خواندن تصاوير از ديتابيس، از اين روش استفاده ميكردم به اشتباه فكر كردم در اين مورد هم جواب گو هست.

با تشكر