Для вашего последнего утверждения вы запускаете цикл, который ничего не делает, кроме как возвращает значение. Он вернется в первый раз, но затем цикл перестает работать, поэтому другие возвраты ничего не делают.
public int getOctet()
{
for (this.i=0; this.i <=3; this.i++)
{
return this.Octet[i];
}
}
Это эквивалентно:
return this.Octet[0];
Поскольку он запускается только один раз.