Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2010, 19:50   #1
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию Область видимости переменной

Подскажите пожалуйста а то запутался ,коментарии в коде:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication2
{   
    public partial class Form1 : Form
    {
        public FileStream fs; // переменная экземпляр класса
        public Form1()
        {
            InitializeComponent();
        }

        

        private void button1_Click(object sender, EventArgs e)
        {
          
                fs.Seek(c, SeekOrigin.Begin); //здесь ругается что экземпляр класса не создан
            
    
            
        fs.Close();


        }




        private void UnicodeEncoding()
        {
            throw new NotImplementedException();
        }

        public void button2_Click(object sender, EventArgs e) // эту кнопку нажимаю раньше
        {
            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.Filter = "BMP files (*.bmp)|*.bmp";
            openFileDialog1.RestoreDirectory = true;
            openFileDialog1.ShowDialog();

            //создаю экземпляр класса
            FileStream fs = new FileStream(openFileDialog1.FileName,    FileMode.OpenOrCreate, FileAccess.ReadWrite);
           
            
        }

    }
}
Сообственно вопрос,втору кнопку нажимаю первой , экземпляр класса в контексте функции button2_Click создан (смотрел дебагером) , а в контексте button1_Click он еще не создан =(
Помогите пожалуйста разобраться
bondik вне форума Ответить с цитированием
Старый 02.10.2010, 20:12   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
FileStream fs = new FileStream(openFileDialog1.FileName,    FileMode.OpenOrCreate, FileAccess.ReadWrite);
>>
Код:
this.fs = new FileStream(openFileDialog1.FileName,    FileMode.OpenOrCreate, FileAccess.ReadWrite);
BOBAH13 вне форума Ответить с цитированием
Старый 03.10.2010, 13:20   #3
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

хм,но по логике я же в одном и том же классе с ней работаю,зачем указыать родителя 0_о
bondik вне форума Ответить с цитированием
Старый 03.10.2010, 13:30   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но по логике
Вот как раз по логике получается что
Цитата:
public void button2_Click(object sender, EventArgs e) // эту кнопку нажимаю раньше
{

//создаю экземпляр класса
FileStream fs = new FileStream(openFileDialog1.FileName , FileMode.OpenOrCreate, FileAccess.ReadWrite);
}
fs здесь локальная переменная, создаюшаяся и имеющая силу только внутри обработчика кнопки потому что ты не только создаешь обьект, но и еще описал саму переменную именно в этом обработчике. Здесь fs не имеет никакого отношения к глобальной fs - ты сописал новую переменную FileStream fs
А вот если ты напишешь так:
Код:
        private void button2_Click(object sender, EventArgs e)
        {
            fs = new FileStream("C:\\Temp\\select.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);

        }
Без указания типа - это будет означать что ты хочешь работать с уже описанной переменной, а не создать (пардон зарезервировать) новую.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.10.2010, 12:18   #5
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

понял,спасибо,просто скопипастил и название типа нечайно
bondik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
область видимости классов sashonk JavaScript, Ajax 1 15.09.2010 11:19
Проблема с область видимости 19950525 Помощь студентам 11 26.06.2010 12:46
Публичная область видимости Бутаков_Сергей Общие вопросы Delphi 1 20.04.2010 09:02
область видимости Dimarik Общие вопросы .NET 5 21.02.2010 21:32
область видимости ? artem779 Общие вопросы Delphi 3 14.09.2007 09:34