Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 3
.NET 3.x

Почему в приведенном коде сообщается о переменной, которой не присвоено значение

03.09.2012, 20:44. Показов 964. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

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

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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 > [B]stampWidth[/B])
                {
                    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 + [B]stampHeight[/B]), 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();
            }
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.09.2012, 20:44
Ответы с готовыми решениями:

Почему не меняется значение переменной в приведенном коде
Здравствуйте, у меня есть код: Object a = 0; Object b = a; a = 1; ...

Использование переменной, которой не присвоено значение
Всем привет, столкнулся с такой ошибкой - использование переменной, которой не присвоено значение. вот код: private void...

Использование локальной переменной, которой не присвоено значение
Использование локальной переменной "A", которой не присвоено значение Не совсем понимаю почему ругается? Думаю из-за этого куска, try ...

1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
03.09.2012, 21:28
Потому что компилятор не может быть уверенным в том, что StampType всегда будет либо 1, либо 0. С его точки зрения, значение этой переменной может быть и другим, в результате чего переменным stampWidth и stampHeight не присвоится никакого значения до их первого использования, о чем вам и сообщает.
Либо присвойте какое-нибудь значение при создании, либо добавьте в свитч блок default на случай, если StampType не равен единице или нулю, в котором присвойте дефолтное значение или бросайте исключение, если таковое присвоить невозможно/не имеет смысла.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2012, 21:28
Помогаю со студенческими работами здесь

Использование локальной переменной, которой не присвоено значение
При написании вот такого кода выходит ошибка. Если при объявлении переменной написать n1 = new int(), то выводит всегда ноль. Кто знает,...

Использование локальной переменной которой не присвоено значение
Использование локальной переменной "massiv", которой не присвоено значение. Потихоньку привыкаю к c# static void Main(string...

Использование локальной переменной, которой не присвоено значение
namespace ConsoleApplication6 { class Program { static void Main(string args) { double a, b, p, x, f; ...

Использование локальной переменной, которой не присвоено значение
Использование локальной переменной "b", которой не присвоено значение. Не понимаю как сделать её глобальной using System; using...

Использование локальной переменной, которой не присвоено значение
Добрый день, форумчане! Столкнулся с проблемой при использовании ref/out проблема как вы понимаете в заголовке топика - не могу понять как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru