powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что означает base(name)?
25 сообщений из 31, страница 1 из 2
Что означает base(name)?
    #39436398
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом примере:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
class Person
{
    public string Name { get; set; }
 
    public Person(string name)
    {
        Name = name;
    }
    public void Display()
    {
        Console.WriteLine(Name);
    }
}

class Client : Person
{
    public Client(string name) : base(name)
    {
    }
}
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436401
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык
вызов конструктора базового класса
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436462
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Shocker.Proдык
вызов конструктора базового класса
Сначала, сразу послe {
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436610
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Сначала, сразу послe {

Не смог постичь смысл этой фразы )
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436627
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
hVosttCat2Сначала, сразу послe {

Не смог постичь смысл этой фразы )
Ну это же просто. Это как в обработчике событий, но там сначала выполняется то, что перед }
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436715
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Ну это же просто. Это как в обработчике событий, но там сначала выполняется то, что перед }

Ничего себе сравнение
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436739
TsHeloWorlder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс Client принимает в конструктор 2 параметра. name отдает в родительский конструктор, а id использует сам.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
class Client : Person
{
    private int _id;

    public Client(string name, int id) : base(name)
    {
       _id = id;
    }
}



А есть еще constructor chaining:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class Foo {
    private int id;
    private string name;
    public Foo() : this(0, "") {
    }
    public Foo(int id, string name) {
        this.id = id;
        this.name = name;
    }
    public Foo(int id) : this(id, "") {
    }
    public Foo(string name) : this(0, name) {
    }
}



когда конструктор вызывает другой конструктор этого-же класса через this() .
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436813
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
hVosttCat2Ну это же просто. Это как в обработчике событий, но там сначала выполняется то, что перед }

Ничего себе сравнение
Устал тебе объяснять. Код выполняется между {}. Если это конструктор, то в начале, если обработчик - то в конце!
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39436850
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Устал тебе объяснять. Код выполняется между {}. Если это конструктор, то в начале, если обработчик - то в конце!

Ты очень подробно всё объяснил, спасибо
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437468
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proдык
вызов конструктора базового класса
Вызов конструктора базового класса с параметром типа string, у базового может быть 100500 конструкторов.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437484
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВызов конструктора базового класса с параметром типа stringили параметром типа object, или параметром типа IEnumerable<char> раз уж быть таким въедливым.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437497
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

не, object не покатит
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437819
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2hVosttпропущено...


Ничего себе сравнение
Устал тебе объяснять. Код выполняется между {}. Если это конструктор, то в начале, если обработчик - то в конце!
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437870
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttне, object не покатит с чего это?
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437897
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProhVosttне, object не покатит с чего это?
Потому что string унаследован от object, а не наборот:
Код: c#
1.
2.
Console.WriteLine(typeof(string).IsAssignableFrom(typeof(object)));
Console.WriteLine(typeof(object).IsAssignableFrom(typeof(string)));


Код: plaintext
1.
False
True
И IEnumerable<char> не прокатит по той же причине.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437899
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, и поскольку тип string финализирован, то ничего кроме стринга и не прокатит.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437918
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныИ IEnumerable<char> не прокатит по той же причине.

да, точняк, я как-то забываю, что в C# нет неявного приведения типов через конструктор, как в C++
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437965
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

То есть так работать не будет?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
    class A
    {
        public A(object s)
        {
            Console.WriteLine($"A: {s}");
        }
    }

    class B : A
    {
        public B(string name) : base(name)
        {
            Console.WriteLine($"B: {name}");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            new B("abc");
        }
    }

Или Вы о чем спорите?
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437969
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refreghVostt,

То есть так работать не будет?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
    class A
    {
        public A(object s)
        {
            Console.WriteLine($"A: {s}");
        }
    }

    class B : A
    {
        public B(string name) : base(name)
        {
            Console.WriteLine($"B: {name}");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            new B("abc");
        }
    }

Или Вы о чем спорите?
Так будет, не будет наоборот - когда в параметре конструктора базового класса string. Как в первом постинге.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437979
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВызов конструктора базового класса с параметром типа string Shocker.Proили параметром типа object, или параметром типа IEnumerable<char>hVosttне, object не покатитСон Веры ПавловныТак будет, не будет наоборотЯ разве что-то говорил про наоборот? Базовый конструктор может быть с параметром типа object или любого интерфейса, который реализуется в string.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437983
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныТак будет, не будет наоборот - когда в параметре конструктора базового класса string. Как в первом постинге.
Ну тогда внимательно прочитайте 20395464
Где там про "наоборот"
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39437985
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я лично там вижу вызов констркутора базового класса, у которого в параметрах стринг, и в который пытаются передать object и IEnumerable<char>. Судя по тому, что hVostt написал "object не покатит", я не один такой.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39438005
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

ты видишь как-то наоборот )))

Изначальный посыл ЕвгенийВ был такой:ЕвгенийВВызов конструктора базового класса с параметром типа string, у базового может быть 100500 конструкторов.то есть речь шла именно о базовом конструкторе и ЕГО параметрах
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39438072
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЯ разве что-то говорил про наоборот? Базовый конструктор может быть с параметром типа object или любого интерфейса, который реализуется в string.

Да, таки ты говорил наоборот.

Shocker.ProЕвгенийВВызов конструктора базового класса с параметром типа stringили параметром типа object, или параметром типа IEnumerable<char> раз уж быть таким въедливым.

Нельзя Вызов конструктора базового класса перепутать с переделыванием этого конструктора, поменяв тип аргумента со string на object, для того, чтобы сунуть ему object или IEnumerable<char>. Ну никак нельзя, даже сильно упившись.
...
Рейтинг: 0 / 0
Что означает base(name)?
    #39438079
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

А так как речь шла о string, а ты предложил object или IEnumerable<char>, то тут не может быть никаких разночтений. Ибо тогда, раз уж на то пошло, то можно не только эти типы в конструкторе базового класса воткнуть, но и вообще абсолютно любой тип, и гораздо больше аргументов, и в чём смысл данного капитанского комментария?
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что означает base(name)?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]