Bonjour,

je me pose actuellement une petite question.
Vaut il mieux caster un objet ou en créer un nouveau en terme de performance?

Voici un petit bout de code:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public class DatabaseConnection
{
	...
	...
 
	public IEnumerable<NpgsqlDataReaderEvoluate> Read(NpgsqlDataReader result)
	{
		while (result.Read()){
			yield return new NpgsqlDataReaderEvoluate(result);
			//Ou vaut il mieux faire yield return new (NpgsqlDataReaderEvoluate) result;
		}
	}
}

Et ma classe
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class NpgsqlDataReaderEvoluate
{
	private NpgsqlDataReader _Reader { get; set; }
	public NpgsqlDataReaderEvoluate(NpgsqlDataReader reader)
	{
		_Reader = reader;
	}
 
	public int GetInt(string fieldValue)
	{
		return _Reader.GetInt32(_Reader.GetOrdinal(fieldValue));
	}
 
	public string GetString(string fieldValue)
	{
		return _Reader.GetString(_Reader.GetOrdinal(fieldValue));
	}
 
	....
	....
	....
}

Le problème c'est que je n'arrive pas à hériter de NpgsqlDataReader ("Cannot access internal constructor 'NpgsqlDataReader' here").

Bref vaut il mieux hériter (trouver une solution) ou créer un nouvel objet sera aussi performant?