تمام سوالات سوالات بدون پاسخ سوال بپرسید

سلام پشته ای دارم آرایه ای با دیتا تایپ window که لیست ویندوزها داخلش push شدند. عناصر کلاسه پشته رو جهت دسترسی تو سایر windowها و کلاس ها static تعریف کردم. پوش رو هم داخل هر کلاس بصورت زیر انجام میدم:

Stack_t.push(this);

قصدم این هست که آخرین ویندوز باز شده رو از این طریق کنتر کنم، مثلا Closeش کنم ولی موقعی که مثلا کد زیر و میدم به مشکل برمیخورم:

Window cw = Stack_t.pop();

cw.Close();

خطا: System.NullReferenceExeption: object reference not set to an instance of an object. که خطا رو به خط زیر میگیره

cw.Close();

چجوری میتونم این کار رو انجام بدم؟

2 پاسخ

سلام
مطمئن نیستم ولی خطا میگه که باید یک instance از window بگیری ، فکر کنم مشکلتون اینجوری حل بشه

Window cw = new Window();

cw = Stack_t.pop();

cw.Close();

جواب نداد، همون error همون مشکل

(26 ژوئیه '13, 02:24) designme

پیشنهاد من این است که کلاس پشته رو دستکاری نکنی و به صورت Singleton به اون دسترسی پیدا کنی:

class MyGlobalStack extends Stack
{
    private static MyGlobalStack instance;
    public static MyGlobalStack()
    {
        instance = new MyGlobalStack();
    }

    public static MyGlobalStack get()
    {
        return instance;    
    }
}

// sample usage
MyGlobalStack.get().push(form1);

حل نشد، مشکل از استکی که نوشتم نیست. مشکل از اینه که متغییر باید از همون نوع تعریف شده باشه مثلا: MainWindow mw = new MainWindow() در صورتی که من از ریفرنسWindows mw = ... استفاده میکنم! آیا این مشکل به طریقی قابل حل هست؟

(27 ژوئیه '13, 01:11) designme

کاش تمام کدتون رو اینجا می ذاشتین تا بهتر بشه مشکل رو پیدا کرد!

(29 ژوئیه '13, 03:01) bee
toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×209
  • ×137
  • ×36
  • پرسیده شده: 25 ژوئیه '13, 00:21
  • بازدید: 2,136 بار
  • آخرین بروزرسانی: 29 ژوئیه '13, 03:01

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها