[ C# / Java ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by procedure, 2 Nov 2008.

  1. tarakannn

    tarakannn New Member

    Joined:
    15 Dec 2008
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    какая тебе разница? на чем переменные? на красоту кода я не претендую, т.к. первая программа на Сшарпе
     
  2. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    C#

    Значит есть объект DataGridView:
    По дефолту в нем только одна поле(строка), а остальное место пустует.

    Можно ли его как-то заполнить по-дефолту, чтобы юзер не видел коричнегого бэкграунда, а только видел ячейки?
     
  3. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    измени свойство - AllowUserToAddRow = false

    p.s. если мне не изменяет память, то у объекта Cells[index] имеется метод устанавливающий цвет бэкраунда. Cells[index].BackColor = Color.Black
     
  4. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    using(var sqlCon = new SqlConnection(ConStr))
    {
    using(var cmd = new SqlCommand("Truncate Table <TableNameHere>", sqlCon)
    {
    sqlCon.Open();
    cmd.ExecuteNonQuery();
    }
    }

    если я ничего не забыл. вобщем просто Truncate table делаешь и все

    подробнее о Truncate Table - http://msdn.microsoft.com/ru-ru/library/ms177570.aspx
     
  5. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Народ, подскажите пожалуйста, как в шарпе устроить проверку типов, тоесть я считываю с консоли строку, потом хочу преобразовать ее в целочисленный тип. Но если в строке находилась буква, а не цифра? как узнать об успешности или не успешности конвертирования?

    я пробовал сделать так:
    Code:
    if ((Пункт_Меню = int.Parse(пункт_меню)) == 0)
    где Пункт_Меню - целочисленный тип int, а пункт_меню - строковый string

    Но у меня не вышло( хелп плз :rolleyes:
     
  6. procedure

    procedure Elder - Старейшина

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Есть такие операторы как is и as.
    is возвращает true если, тот тип который нужен. as возвращает объект, если можно привести к типу.
    Смотри допустим:
    Code:
    if (15 is int)
                    Console.Write("true");
                else
                    Console.WriteLine("false");
    вернет true
    Code:
    if ("sdfs" is int)
                    Console.Write("true");
                else
                    Console.WriteLine("false");
    вернет false
     
    #66 procedure, 1 Feb 2009
    Last edited: 1 Feb 2009
    1 person likes this.
  7. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Может я немного не понял, но у еня чего-то не получается(

    Code:
    class Program
        {
            static public void Main()
            {
                int a;
                string c;
                c = Console.ReadLine();
                a = int.Parse(c);
    
                if (a is int)
                    Console.Write("true");
                else
                    Console.Write("false");
    
            }
    Если ввести в консоли число - все нормально, но если букву - вылезает ошибка с отчетом виндовс( Что сделать, чтобы при вводи с консоли буквы появлялось "false", а не ошибка?

    заранее спасибо!
     
  8. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Думал я думал, напрягался я напрягался... и в итоге что-то да получил. Хотя работает не совсем идеально, но все же!

    Code:
    while (true)
                {
                    int a = -1;
                    string c;
                    c = Console.ReadLine();
                    int.TryParse(c, out a);
    
                    if (a != 0)
                        Console.Write("true");
                    else
                        Console.Write("false");
                }
    Но есть и 1 минус - это то, что значение 0 оно не воспринимает как число. int.TryParse(c, out a); в случае не правильности ввода возвращает в переменную а значение 0. А в случае правильности - уже целочисленное значение переменной с. Потому и пришлось убрать 0.

    Может кто подскажет вариант по эффективнее?
     
  9. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Додумал до идеала!
    Code:
    while (true)
                {
                    int atemp;
                    string c;
                    c = Console.ReadLine();
                    
    
                    if ((int.TryParse(c, out atemp)) == true)
                        Console.WriteLine("true");
                    else
                        Console.Write("false");
                }
    фух, ну и напрягся) если кто знает еще способы - напишите плз)

    А вот еще проще, без использования дополнительной переменной!

    Code:
     int atemp; 
    while (true)
                {
                                                 
                    if ((int.TryParse(Console.ReadLine(), out atemp)) == true)
                        Console.WriteLine("true");
                    else
                        Console.WriteLine("false");
                }
    Думаю, это идеальный вариант)
     
    #69 horlyk, 1 Feb 2009
    Last edited: 1 Feb 2009
  10. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    PHP:
    try
    {
    var 
    Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("true");
    }
    catch
    {
    Console.WriteLine("false");
    }
    имхо...

    P.S. конструкция if() всегда подразумевает что условие возращает true;

    т.е.
    не
    а
     
    #70 W!z@rD, 1 Feb 2009
    Last edited: 1 Feb 2009
  11. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    Тему видимо удалили, но я обещал выложить видео. Думаю, в этой теме оно будет в некоторой степени к месту. Вот собственно оно:


    Создание окон произвольной формы на платформе Java с применением технологии JavaFX:

    http://ifolder.ru/10374109

    http://www.filefactory.com/file/afgfeea/n/video_rar



    Не буду продолжать холиварить и разводить демагогию что лучше а что хуже. Скажу лишь, что не нужно недооценивать и принижать достоинства Java. А так - каждый волен выбирать что ему по вкусу. *peace* ;)

    P.S. Всем спасибо, было интересно на самом деле пообщаться. Не знал что на форуме столько джавистов. Всем удачи на профессиональном поприще - и джавистам и дотнетчикам! :)
     
  12. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Вес большеватый, так бы глянул:(
     
  13. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Как в Шарпе обходятся без глобальных объектов? Мне нужно, чтобы велась некая статистика, но я не знаю как сделать ее без глобальных объектов. Объект содержит 3 переменных. При каждом вызове одного метода(их 10), в параметры объекта вносятся коррективы - а именно увеличение на 1 определенных параметров, а других на 2. Как можно это реализовать, подскажите плз
     
  14. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Значения сбрасываются все на 0 после каждого вызова метода, вернее после окончания его работы
     
  15. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Надеюсь ты к методам не через :: обращаешься? Если да, то переменные не будут сохраняться после действий... Так, что без объекта не обойтись.

    YourClass obj = new YourClass();
    obj.method();
    Console.Write(obj.variable):
     
    #75 Chaak, 4 Feb 2009
    Last edited: 4 Feb 2009
    1 person likes this.
  16. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Спасибо! Конечно все не совсем так, а с точностью наоборот! Я вызывал тот метод для объекта собственного класса! теперь все работает! Спасибо за идею! С меня+++++
     
  17. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Такой вопрос (C#).
    Есть основной поток программы. Из него запускаю другой (рабочий) поток методом thread.Start().
    Но как известно, код после thread.Start() выполняется сразу, не дожидаясь завершения рабочего потока.
    Как мне дождаться завершения рабочего потока и только затем продолжить выполнение кода сновного потока, при этом чтобы во время ожидания GUI программы не зависал?
    Пробовал AutoResetEvent :

    Code:
    [i][B]thread.Start();[/B] //Запускаем рабочий поток
    [B]autoEvent.WaitOne();[/B] // лочится основной поток
    [B]< some_code >;[/B] // код, который нам надо выполнить по завершению рабочего потока[/i]
    В конце рабочего потока прописан сигнальный вызов autoEvent.Set().

    Но данный метод естественно не прокатил, ибо ожидающий (он же основной) поток начисто блокируется (то есть gui виснет)

    Какие есть пути решения?
     
  18. geezer.code

    geezer.code Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    552
    Likes Received:
    358
    Reputations:
    90
    в .NET framework начиная с 2.0 есть такая штука как BackgroundWorker - чтото вроде упрощенной для пользования реализации потоков. у него есть асинхронные вызовы. используй его. я думаю это решит твою проблему.
     
    1 person likes this.
  19. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Code:
                controlThread = new Thread(method);
                controlThread.Start();
    
                while (controlThread.ThreadState != System.Threading.ThreadState.Stopped)
                    Application.DoEvents();
                 .....
    
     
  20. horlyk

    horlyk Elder - Старейшина

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    В общем есть вопросик.
    (С#, консоль)
    1. Как узнать, какую клавишу нажал пользователь(допустим стрелку вниз и на консольке отобразился номер этой клавиши.) ?
    мне нужно проверить так:
    Code:
    if(нажата стрелка вниз)
    {сделать то}
    Было бы очень интересно увидеть пример с коментами, если можно.
    Заранее спасибо!
     
    #80 horlyk, 12 Feb 2009
    Last edited: 12 Feb 2009
Loading...
Similar Threads - Java начинающим задаем
  1. b3
    Replies:
    4
    Views:
    3,168