nullvoid wrote: |
έχουμε ένα interface ITest και μία κλάση που το υλοποιεί CTest
έχουμε και μία μέθοδο HelloWorld(IEnumerable<ITest> myenum)
και όταν πάω να κάνω HelloWorld(c) όπου c είναι IEnumerable<CTest> δε με αφήνει ο compiler.
Αν κάνω HelloWorld( (IEnumerable<ITest>) c ) τότε πετάει cast exception.
Γιατί δεν επιτρέπεται αυτού του είδους η κληρονομικότητα;
|
|
Καλο θα ειναι να δινουμε το code snippet εδω ωστε να μπορουν και οι αλλοι και να καταλαβαινουν γρηγορα τι γινεται αλλα και μ'ενα copy/paste στο VS να μπορουν να πειραματιστουν ωστε να μπορουν να βοηθησουν.
Τεσπα, κατι σαν το παρακατω κανεις ?
using System;
using System.Collections.Generic;
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args) {
IEnumerable<CTest> c = null; // put whatever valid here
CTest test = new CTest();
test.HelloWorld( (IEnumerable<ITest>) c);
//test.HelloWorld(c);
}
}
interface ITest { }
class CTest : ITest
{
public void HelloWorld(IEnumerable<ITest> myenum) { }
}
}
Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.