PDA

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



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

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

Hossis
یک شنبه 16 خرداد 1389, 22: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, 22:24 عصر
شايد هم اشکال از اين باشه که CByte روالي به نام New ندارد.

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

baran_mehr
دوشنبه 17 خرداد 1389, 00:09 صبح
دوستان این یه کد سی شارپ هست که به ویبی میخوام تبدیلش کنم .

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

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

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


Dim b(st.lenght - 1) As Byte

Dim b(st.lenght - 1) As Byte

salehbagheri
دوشنبه 17 خرداد 1389, 00:25 صبح
Dim b(st.lenght - 1) As Byte

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

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


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

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

موفق باشید

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

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

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

با تشكر