GOT C# 6

Published 1-8-2004 22:21

Na sequência do que tem sido feito nos números anteriores, vamos começar por fornecer as respostas às questões do item anterior. Relativamente ao primeiro exemplo, não há qualquer problema com o código pois em C# o acesso é definido a nível da classe e não ao nível do objecto. Devido a isto, é possível termos um objecto a aceder aos campos privados de outro objecto (se bem que esta não seja uma estratégia muito boa!).

Por outro lado, o segundo programa contém um erro relacionado com o facto de estarmos a aceder a um membro protegido da classe Class1. Isto deve-se a uma regra que diz (mais ou menos) o seguinte: o acesso a um membro protegido (protected)  fora do texto da classe deve ser sempre feito através de uma classe derivada.

Para esta semana, interessa saber qual o resultado proveniente do seguinte código:

struct Point
{
private int _x;
private int _y;
public int X
{
get{ return _x; }
set{ _x = value;}
}
public int Y
{
get{ return _y; }
set{_y = value; }
}
}
struct
Rectangle

{
private Point _p1;
private Point _p2;
public Point P1
{
get { return _p1; }
set { _p1 = value; }
}
public Point P2
{
get { return _p2; }
set { _p2 = value; }
}
}
class Program{
static void Main( string[] args )
{
Point p1; p1.X = p1.Y = 1;
Rectangle rect;

rect.P1 = p1;
rect.P2.X = 2;
rect.P2.Y = 2;
}
}

Até para a semana!

Filed under: ,

Leave a Comment

(requerido) 
(requerido) 
(opcional)
(requerido) 
If you can't read this number refresh your screen
Enter the numbers above: