Имя: Пароль:
IT
 
C#: Наследование, struct
0 Ненавижу 1С
 
гуру
27.04.10
12:18
почему в C# нет наследования структур?
1 Mort
 
27.04.10
12:19
Бил Гейтс на мисте тусует? Какой у него ник?
2 Mort
 
27.04.10
12:22
А по сабжу никогда не понимал необходимости этого в С++. Если описывается сущность к которой можно применить понятие наследования, то для этого есть класс.
3 xReason
 
27.04.10
12:22
Зачем если есть интерфейсы и классы?
4 Ненавижу 1С
 
гуру
27.04.10
12:35
Было бы удобно в плане:

struct A
{
   public int X;
}
struct B:A
{
   public int Y;
}
A a = new A();
a.X = 10;
B b = a;
b.X++;
//b.X равен 11
//a.X равен 10
5 Rabbit
 
27.04.10
12:40
Within a struct declaration, fields cannot be initialized unless they are declared as const or static.
A struct may not declare a default constructor (a constructor without parameters) or a destructor.
Structs cannot inherit from classes or other structs.
!!! Structs are copied on assignment. When a struct is assigned to a new variable, all the data is copied, and any modification to the new copy does not change the data for the original copy.
!!! Structs are value types and classes are reference types.
! Unlike classes, structs can be instantiated without using a new operator.
Structs can declare constructors that have parameters.
!!!!! A struct cannot inherit from another struct or class, and it cannot be the base of a class. All structs inherit directly from System.ValueType, which inherits from System.Object.
!!! A struct can implement interfaces.
A struct can be used as a nullable type and can be assigned a null value.
6 Ненавижу 1С
 
гуру
27.04.10
12:41
(5) я в курсе
7 Rabbit
 
27.04.10
12:44
(6) Я намекаю на концептуальные отличия от классов
8 Господин ПЖ
 
27.04.10
12:45
(4) и что это за изврат
9 ДенисЧ
 
27.04.10
12:46
На самом деле ответ простой...
До-диез - это не цэ с прицепом. Поэтому нужно уходить от старых представлений о мире. И не использовать устаревшие паттерны.
10 Ненавижу 1С
 
гуру
27.04.10
12:58
а так приходится писать имплицит/эксплицит операторы
11 Rabbit
 
27.04.10
13:09
Корень зла тут в CLR, CTS, CLS судя по всему.
12 Ненавижу 1С
 
гуру
27.04.10
13:11
(11) да ладно, это все обходится, по сути структура это набор переменных, то есть можно сгенерировать обычный код
13 Rabbit
 
27.04.10
13:15
(12) Естественно. Не захотели чтоб не смущать, имхо. К стати, нужно глянуть что там в C# 4.0
14 Ненавижу 1С
 
гуру
27.04.10
13:17
(13) там dynamic тип есть
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший