Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 61
1

Использование переменной, которой не присвоено значение

10.03.2014, 18:39. Показов 1132. Ответов 16
Метки нет (Все метки)

Всем привет, столкнулся с такой ошибкой - использование переменной, которой не присвоено значение.
вот код:
C#
1
2
3
4
5
6
7
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (Control.ModifierKeys == Keys.Shift)
            Image img = ImageFromScreen();
            Random r = new Random();
            img.Save(r.Next(1000, 9999).ToString() + ".png", ImageFormat.Png);
        }
Вроде видно что значение присвоено
C#
1
Image img = ImageFromScreen();
а че он злится я не понимаю. Заранее спасиб
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2014, 18:39
Ответы с готовыми решениями:

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

Использование локальной переменной, которой не присвоено значение
Использование локальной переменной "A", которой не присвоено значение Не совсем понимаю почему...

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

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

16
Заблокирован
10.03.2014, 18:41 2
Что возврашает функция ?

Лучше сделайте так
C#
1
2
3
Image img = new Image();
 
img  = ImageFromScreen();
Так должно сработать
0
43 / 43 / 19
Регистрация: 22.05.2011
Сообщений: 156
Записей в блоге: 5
10.03.2014, 18:50 3
Покажите функцию ImageFromScreen().
ICanHelpU, А в чем разница?

Добавлено через 4 минуты
C#
1
2
3
4
5
6
7
8
9
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (Control.ModifierKeys == Keys.Shift)
            {
            Image img = ImageFromScreen();
            Random r = new Random();
            img.Save(r.Next(1000, 9999).ToString() + ".png", ImageFormat.Png);
            }
        }
Проблема в отсутствии фигурных скобок.
0
Заблокирован
10.03.2014, 19:06 4
Разница в том что обьект 100% создан

пс скобки не заметил)
0
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 61
10.03.2014, 19:35  [ТС] 5
вот)))
C#
1
2
3
4
5
6
7
8
9
10
public Bitmap ImageFromScreen()
        {
            Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
            using (var gr = Graphics.FromImage(bmp))
            {
                gr.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y,
                    0, 0, Screen.PrimaryScreen.Bounds.Size);
            }
            return bmp;
        }
Сделал так
C#
1
2
3
Image img = new Image();
 
img  = ImageFromScreen();
но все равно идет ошибка. Пишет:
Ошибка 1 Внедренный оператор не может быть объявлением или оператором с идентификатором
Ошибка 2 Невозможно создать экземпляр абстрактного класса или интерфейса

Добавлено через 3 минуты
я добавлял в свою прогу скриншотер. Может как нибудь по другому оформить?
0
43 / 43 / 19
Регистрация: 22.05.2011
Сообщений: 156
Записей в блоге: 5
10.03.2014, 19:41 6
Возможно проблема в том что вы Image присваиваете Bitmap.
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,979
10.03.2014, 19:47 7
Цитата Сообщение от Т_М_7 Посмотреть сообщение
Bitmap ImageFromScreen()
Цитата Сообщение от Т_М_7 Посмотреть сообщение
Image img = ImageFromScreen();
Bitmap и Image что общего?
0
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 61
10.03.2014, 19:47  [ТС] 8
простите меня конечно, но я не понял. Я не профессиональный программист. Началось у меня все дело с текста в яндексе "как сделать программу". А дальше я уже начал потихоньку разбираться...
Вверху есть
C#
1
using System.Drawing.Imaging;
А что такое Bitmap, я мало че понимаю....

Добавлено через 18 секунд
так что, нет больше версий?
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,979
10.03.2014, 19:51 9
Цитата Сообщение от Т_М_7 Посмотреть сообщение
Невозможно создать экземпляр абстрактного класса или интерфейса
т.е Image абстрактный?
а Bitmap его наследник?
если да то нужно привести
C++
1
Image img =(Image) ImageFromScreen();
или использовать конструктор копирования, если он есть
C++
1
Image img(ImageFromScreen());
0
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 61
10.03.2014, 20:01  [ТС] 10
все равно ругается:
Ошибка 1 Внедренный оператор не может быть объявлением или оператором с идентификатором
Ошибка 2 Использование локальной переменной "img", которой не присвоено значение

Добавлено через 1 минуту
еще раз скидываю кусок кода если че
C#
1
2
3
4
5
6
7
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (Control.ModifierKeys == Keys.Shift)
            Image img =(Image) ImageFromScreen();
            Random r = new Random();
            img.Save(r.Next(1000, 9999).ToString() + ".png", ImageFormat.Png);
        }
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,979
10.03.2014, 20:15 11
Цитата Сообщение от Т_М_7 Посмотреть сообщение
А что такое Bitmap, я мало че понимаю....
ты используешь два разных класса и даже не знаешь родственники ли они
1
43 / 43 / 19
Регистрация: 22.05.2011
Сообщений: 156
Записей в блоге: 5
10.03.2014, 20:15 12
Цитата Сообщение от Т_М_7 Посмотреть сообщение
private void Form1_KeyDown(object sender, KeyEventArgs e)
* * * * {
* * * * * * if (Control.ModifierKeys == Keys.Shift)
* * * * * * Image img =(Image) ImageFromScreen();
* * * * * * Random r = new Random();
* * * * * * img.Save(r.Next(1000, 9999).ToString() + ".png", ImageFormat.Png);
* * * * }
я так то уже сказал что не хватает фигурных скобок после if.
Должно быть так:
C#
1
2
3
4
5
6
7
8
9
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (Control.ModifierKeys == Keys.Shift)
            {
            Image img =(Image) ImageFromScreen();
            Random r = new Random();
            img.Save(r.Next(1000, 9999).ToString() + ".png", ImageFormat.Png);
            }
        }
1
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 61
10.03.2014, 20:24  [ТС] 13
а если со скобками, то действие не выполняется. Проверял на messageBox.Show("...");

Добавлено через 45 секунд
ладно, ниче не получилось... все равно спасибо вам
0
43 / 43 / 19
Регистрация: 22.05.2011
Сообщений: 156
Записей в блоге: 5
10.03.2014, 20:30 14
Цитата Сообщение от Т_М_7 Посмотреть сообщение
а если со скобками, то действие не выполняется
попробуй убрать условие if
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,979
10.03.2014, 20:32 15
Цитата Сообщение от Т_М_7 Посмотреть сообщение
а если со скобками, то действие не выполняется.
а кнопку Shift жал?
у тебя в условии проверяется нажата ли она
0
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 61
10.03.2014, 20:33  [ТС] 16
ну естественно
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,979
10.03.2014, 21:56 17
Цитата Сообщение от Т_М_7 Посмотреть сообщение
ну естественно
может там другие кнопки гадят
попробуй выделить только Shift
C#
1
if (Control.ModifierKeys & Keys.Shift == Keys.Shift)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2014, 21:56

Использование локальной переменной, которой не присвоено значение
Пишет ошибку на client.Receive(messageRecv); Использование локальной переменной, которой не...

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

Использование локальной переменной которой не присвоено значение
Использование локальной переменной "massiv", которой не присвоено значение. Потихоньку привыкаю...

ConsoleKeyInfo. Использование локальной переменной, которой не присвоено значение
namespace ConsoleApplication6 { class RedRoom { public void ShowColorRed() { ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.