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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2012, 20:28   #1
Paravozzz
 
Регистрация: 15.10.2011
Сообщений: 7
По умолчанию Видимость переменных С#

Доброго времени суток!

Подскажите, почему возникает ошибка "Использование локальной переменной, которой не присвоено значение" в выделенных жирным переменных? и можно ли это как-нибудь исправить?

Код:
public void drawViewPortBorder(double borderStartXInt, double borderStartYInt, double borderWidthInt, double borderHeightInt, byte StampType)
        {
            
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Database acDocDb = acDoc.Database;
            using (Transaction acTrans = acDocDb.TransactionManager.StartTransaction())
            {
                double stampWidth; double stampHeight;
                switch (StampType)
                {
                    case 0:
                            stampWidth = 185;
                            stampHeight = 55;
                            break;
                    case 1:
                            stampWidth = 185;
                            stampHeight = 15;
                            break;
                }

                BlockTable acBT;
                acBT = acTrans.GetObject(acDocDb.BlockTableId, OpenMode.ForRead) as BlockTable;
                BlockTableRecord acBTR;
                acBTR = acTrans.GetObject(acDocDb.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;

                Polyline objViewPortBorder = new Polyline(); // Рамка для Видового экрана.
                objViewPortBorder.SetDatabaseDefaults();
                
                if (borderWidthInt > stampWidth)
                {
                    objViewPortBorder.AddVertexAt(0, new Point2d(borderStartXInt, SC.Border.startYInt), 0, 0, 0);
                }
                else
                {
                    objViewPortBorder.AddVertexAt(0, new Point2d(borderStartXInt, SC.Border.startYInt + stampHeight), 0, 0, 0);
                }

                objViewPortBorder.AddVertexAt(1, new Point2d(borderStartXInt, borderStartYInt + borderHeightInt), 0, 0, 0);
                objViewPortBorder.AddVertexAt(2, new Point2d(borderStartXInt + borderWidthInt, borderStartYInt + borderHeightInt), 0, 0, 0);
                objViewPortBorder.AddVertexAt(3, new Point2d(borderStartXInt + borderWidthInt, borderStartYInt + stampHeight), 0, 0, 0);
                objViewPortBorder.AddVertexAt(4, new Point2d(borderStartXInt + (borderWidthInt - stampWidth), borderStartYInt + stampHeight), 0, 0, 0);
                
                if (borderWidthInt > stampWidth)
                {
                    objViewPortBorder.AddVertexAt(5, new Point2d(borderStartXInt + (borderWidthInt - stampWidth), borderStartYInt), 0, 0, 0);
                    objViewPortBorder.AddVertexAt(6, new Point2d(borderStartXInt, borderStartYInt), 0, 0, 0);
                }
                else
                {
                }
                
                objViewPortBorder.Closed = true;
                objViewPortBorder.Layer = "_border";
                
                AAEntity(acTrans, acBTR, objViewPortBorder);

                acTrans.Commit();
                acTrans.Dispose();
            }
        }
Paravozzz вне форума Ответить с цитированием
Старый 03.09.2012, 20:33   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

double stampWidth = 0.0; double stampHeight = 0.0;
eval вне форума Ответить с цитированием
Старый 03.09.2012, 22:09   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Paravozzz
Что не понятно? Перед тем, как использовать переменную, её надо не только объявить, но и инициализировать, то есть, задать её начальное значение.
Вам правильно сказали уже:
Код:
double stampWidth = 0.0; double stampHeight = 0.0;
ИМХО, если бы переменная была невидна в некотором участке кода, то, на мой взгляд, появилась бы ошибка вроде
Цитата:
неизвестный идентификатор stampWidth
Вадим Мошев вне форума Ответить с цитированием
Старый 04.09.2012, 09:10   #4
Paravozzz
 
Регистрация: 15.10.2011
Сообщений: 7
По умолчанию

Спасибо всем! Все понял.
Paravozzz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# видимость TextBox Geometridae Помощь студентам 2 22.10.2011 21:40
Видимость переменной alexz29 PHP 3 19.02.2011 12:02
Видимость компонентов Guitar Помощь студентам 5 14.12.2010 15:19
видимость переменных и методов в c# Sparky Помощь студентам 5 26.07.2010 20:20
Видимость переменных tae1980 Microsoft Office Excel 3 26.03.2009 18:34