PDA

View Full Version : سوال: چرا تابع return رو تشخیص نمیده؟



mmbguide
شنبه 21 شهریور 1394, 12:36 عصر
سلام

یک تابع نوشتم که قراره مقدار Boolean رو برگردونه و دستورات را در بین try قرار دادم که در صورت انجام درست دستورات، مقدار return رو در همان قسمت try بصورت true برگردونه و در صورت بروز Exception مقدار False رو برگردونه. حالا ویرایشگر vs زیر End Function خط سبز کشیده و میگه شما مقدار بازگشتی رو تعریف نکردید. البته در ساختارهای شرطی هم همین مشکل رو دارم مگر اینکه return رو بیرون بلوک های کنترلی و شرطی بنویسم.

چطور میشه این مشکل رو حل کرد؟

ممنون

parvizwpf
شنبه 21 شهریور 1394, 13:08 عصر
شما در کل هنوز به متد نگفتید که چی برگردون . شما باید بیرون و آخر بلاک متد هم بگید خروجی چیه .

SabaSabouhi
شنبه 21 شهریور 1394, 19:35 عصر
سلام

یک تابع نوشتم که قراره مقدار Boolean رو برگردونه و دستورات را در بین try قرار دادم که در صورت انجام درست دستورات، مقدار return رو در همان قسمت try بصورت true برگردونه و در صورت بروز Exception مقدار False رو برگردونه. حالا ویرایشگر vs زیر End Function خط سبز کشیده و میگه شما مقدار بازگشتی رو تعریف نکردید. البته در ساختارهای شرطی هم همین مشکل رو دارم مگر اینکه return رو بیرون بلوک های کنترلی و شرطی بنویسم.

چطور میشه این مشکل رو حل کرد؟

ممنون

سلام
احتمالاً داخل try تحت شرایط خاصی true برگردوندی. اگه شرایط رخ ندن از بلوک try خارج می‌شه و خطا هم نداده که وارد exception بشه
پس در واقع هیچ چیزی برگردونده نشده. فرمان برگردوندن مقدار false رو از exception خارج کن و در زیر بلوک try قرار بده. مشکل حل می‌شه.

صبا صبوحی

mmbguide
شنبه 21 شهریور 1394, 22:16 عصر
به این شکل اصلاح کردم


Function A() As Boolean


Dim Resault As Boolean


Try
' Commands
Resault = True
Catch ex As Exception
' Commands
Resault = False
End Try


Return Resault


End Function