Jo to je celkem dobra konstrukce a bylo by fajn jimit v Jave taky. V C# to predpoklada, ze trida (jako napr. tady BufferedReader) implementuje IDisposable, ktera ma metodu dispose().

Podobna konstrukce je u transakci:
using(TransactionScope scope = new TransactionScope())
{
   /* Transactional work */
}


Zdenek Tronicek wrote:
V navaznosti na tuto diskuzi bych rad poznamenal, ze jednim z navrhu na
vylepseni Javy je Automatic Resource Management. Misto

static String readFirstLineFromFile(String path) throws IOException {

        BufferedReader br = new BufferedReader(new FileReader(path));

        try {

            return br.readLine();

        } finally {

            br.close();

        }

    }

bychom pak mohli psat

    static String readFirstLineFromFile2(String path) throws IOException {

        try (BufferedReader br = new BufferedReader(new FileReader(path)) {

           return br.readLine();

        }

    }

K zavreni streamu br dojde automaticky po opusteni bloku try. Mimochodem,
C# to ma.

Z.T.

Odpovedet emailem