رفتن به مطلب
  • 0

مشکل در مفهموم Initialize


masoud0711

سوال

سلام خدمت دوستان عزیز یه سوال ابتدایی داشتم که ممنون میشم دوستان من رو از این سر در گمی در بیارن

مگه واسه Initialize کردن نباید یه بار این کار رو انجام بدیم و بعدش دیگه میتونیم از اون کلاس استفاده کنیم حالا چرا یه کلاسایی مثل sql برای هربار که میخوای باهاش کار کنیم باید Initialize بشه یا جریانی این کلاسایی که توی حلقه ها تعریف میکنن و چندین بار Initialize میشه چیه؟؟

ممنون میشم دوستان راهنمایی کنن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

1 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام ، شما با Inititalize کردن یا همون مقدار دهی اولیه به کامپایلر میفهمونین که این آبجکتی که تعریف کردین چه چیزیه ، حالا شما ممکنه بیاین یه آبجکت تعریف کنید و یا اون رو برابر یه آبجکت دیگه قرار بدین ، این هم همون Initlaize کردنه ، ولی وقتی شما میاین از متد initialize استفاده میکنین در واقع میاین یه Instance جدید از اون آیتم پدید میارین یعنی وقتی شما میاین میگین 

dim MyList as List

یه ابجکت رو فقط تعریف کردین و فقط یه اسم دادین ، حالا باید اون رو Initialize کنین و یا مقدار دهی کنین ، شما میتونین با متد initalize یه instance جدید یا یه لیست خالی به وجود بیارین و مقدار دهیش کنین

MyList.Initialize

یا میتونین از طریق یه آبجکت دیگه اون رو مقدار دهی کنین ، مثلا توی مثال زیر ما میایم از طریق یه لیست دیگه MyList رو مقدار دهی میکنیم و دیگه نیازی به متد Initialize نیست

MyList = File.ListFiles(File.DirInternal)

خب حالا که مفهوم initialize رو فهمیدین سوالاتون رو بررسی میکنیم : 

سوال اول که راجع به Sql بود اصلا نیازی نیست که هربار Sql رو initialize کنین ، کار خیلی خیلی اشتباهه ، حتی Initialize کردن Sql های مختلف توی اکتیویتی های مختلف هم کار جالبی نیست ، بهتره شما Sql رو از طریق سرویس پیاده کنین و هربار که برنامه ران شد فقط و فقط یه بار initialize شه و بتونین توی همه اکتیویتی ها هم استفادش کنین ، بهترین کار هم استفاده از Sql توی سرویس Starter هستش که خود بیسیک به صورت پیش فرض اون رو ساخته

Sub Process_Globals
	Dim SQLite As SQL
End Sub

Sub Service_Create
	'dasturate copy database
	SQLite.Initialize(File.DirInternal,"sql1.db",False)
End Sub

هرجا هم نیاز بود که استفاده کنین اول اسم Starter رو تایپ کنید و یه . بزنید و آبجکت خودتون رو استفاده کنین : 

Sub Activity_Create(FirstTime As Boolean)
	
	Dim cur As Cursor = Starter.SQLite.ExecQuery("SELECT * FROM data")
	
	For i=0 To cur.RowCount-1
		....
	Next
	
End Sub

 

سوال دومتون هم که گفتین یه سری مقدار ها توی حلقه چند بار Initliaze میشن به دلیل اینکه همون آبجکت توی حلقه تعریف شده پس وقتی حلقه برای مثال 10 بار اجرا شه 10تا آبجکت جدید ساخته میشه که نیاز دارین همه رو توی همون حلقه مقدار دهی یا Initialize کنین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...