none
код вызывает ошибки RRS feed

  • Вопрос

  • можете объяснить почему данный код вызывает ошибки?
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication10
    {
        class Program
        {public double x = 10, y = 12;
            static void Main(string[] args)
            {
                Console.WriteLine(set(x, y));
                Console.ReadLine();
                
            }
            public double set(double x, double y)
            {
                return (x + y);
            }
    
        }
    }
    • Разделено I.Vorontsov 8 декабря 2009 г. 7:36
    • Перемещено I.Vorontsov 29 декабря 2009 г. 12:48 (От:Visual C#)
    • Перемещено SachinW 1 октября 2010 г. 22:13 MSDN Forums Consolidation (От:Начинающие разработчики)
    7 декабря 2009 г. 15:13

Ответы

  • Переменный значимого типа передаются по значению, а не ссылке. Program.x и Program.y не меняются, т.к. в методе typo.click присваивается значение не им, а аргументам метода, которые имеют те же имена - x и y. Тогда следует писать
    Program.x = x + 50;
    Program.y = y + 0.5;

    • Помечено в качестве ответа demon44 9 декабря 2009 г. 15:03
    9 декабря 2009 г. 15:00

Все ответы

  • Определите переменные как:
    static double x = 10, y = 12;
    И добавьте static в
    public static double set(double x, double y)
            {
                return (x + y);
            }
    

    • Предложено в качестве ответа I.Vorontsov 8 декабря 2009 г. 11:48
    8 декабря 2009 г. 7:39
  • а если мне нужно реализовать ввод x и y из другого класса допустим IO, у меня присвоятся статическим переменным новые значения? и если не сложно поясните пожалуйста что значит статические класс, метод, переменная. читая литературу по данной тематике не совсем понимаю это

    8 декабря 2009 г. 11:13
  • Без модификатора static можно изменить значение только у объектов класса. Вроде бы понятно объяснил=) Для понимания попробуй из другого класса обратится к полям, как от объекта класса и как от самого класса(должен увидеть разницу)..
    Смотри, тут всё понятно написано static (Справочник по C#)
    • Предложено в качестве ответа I.Vorontsov 8 декабря 2009 г. 11:49
    8 декабря 2009 г. 11:47
  • Может глупый вопрос но почему у всё равно 50?
    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication12 { class Program {static double x = 100, y = 50; static void Main(string[] args) { typo.click(x, y); Console.WriteLine(y); } } class typo { public static void click(double x, double y) { x = x + 50; y = y + 0.5; } } }
    9 декабря 2009 г. 14:50
  • Переменный значимого типа передаются по значению, а не ссылке. Program.x и Program.y не меняются, т.к. в методе typo.click присваивается значение не им, а аргументам метода, которые имеют те же имена - x и y. Тогда следует писать
    Program.x = x + 50;
    Program.y = y + 0.5;

    • Помечено в качестве ответа demon44 9 декабря 2009 г. 15:03
    9 декабря 2009 г. 15:00
  • как раз то что нужно! спасибо большое! =)
    9 декабря 2009 г. 15:04