Второй ближе к тому, что обычно считается лучшим. В объектно-ориентированном программировании мы инкапсулируем переменные в классах и выставляем только столько, сколько необходимо вне класса.
Назовите ваши свойства начальной заглавной буквой и как элемент данных, а не как метод, т.е. Data
вместо getdata
.
public class WinSock {
private Socket _socket;
private byte[] _data;
public Socket Socket {
get { return _socket; }
}
public byte[] Data {
get { return _data; }
}
}
(Один из способов присвоения имен частным переменным-членам - использовать подчеркивание. Есть и другие общепринятые соглашения, но на самом деле важно выбрать одно и придерживаться его.)
В C # 3 также имеется сокращенный синтаксис для свойств:
public class WinSock {
public Socket Socket { get; private set; }
public byte[] Data { get; private set; }
}