Is Interface implementation Correct
-
Dear All, To know the IEnumerable Interface I have done one demo Aplication please let me know whether there is anything wrong in my approach.
class MyFile : FileSystemInfo
{
private FileInfo _strFile;
public MyFile(FileInfo strFile)
{
_strFile = strFile;
}public override void Delete() { \_strFile.Delete(); } public override bool Exists { get { if (\_strFile.Exists) { return true; } else { return false; } } } public override string Name { get { return \_strFile.Name;} } }
class MyFiles : IEnumerable<MyFile>
{
private string _directoryPath;
private string _fileExtension = "xml";public MyFiles(string directoryPath) { \_directoryPath = directoryPath; } public string FileExtension { get { return \_fileExtension; } set { \_fileExtension = value; } } #region IEnumerable<MyFile> Members public IEnumerator<MyFile> GetEnumerator() { DirectoryInfo di = new DirectoryInfo(\_directoryPath); FileInfo\[\] rgFiles = di.GetFiles("\*." + \_fileExtension); foreach (FileInfo fi in rgFiles) { MyFile ss = new MyFile(fi); yield return ss; } } #endregion #region IEnumerable Members IEnumerator IEnumerable.GetEnumerator() { DirectoryInfo di = new DirectoryInfo(\_directoryPath); FileInfo\[\] rgFiles = di.GetFiles("\*." + \_fileExtension); foreach (FileInfo fi in rgFiles) { MyFile ss = new MyFile(fi); yield return ss; } } #endregion }
Here is it's implementation :
static void Main() { MyFiles myFS = new MyFiles(@"D:\\TestInterface"); foreach(MyFile FS in MyFiles) { Console.WriteLine(FS.Name); Console.ReadLine(); } }
Here I am trying to Iterate the Files in Certa
-
Dear All, To know the IEnumerable Interface I have done one demo Aplication please let me know whether there is anything wrong in my approach.
class MyFile : FileSystemInfo
{
private FileInfo _strFile;
public MyFile(FileInfo strFile)
{
_strFile = strFile;
}public override void Delete() { \_strFile.Delete(); } public override bool Exists { get { if (\_strFile.Exists) { return true; } else { return false; } } } public override string Name { get { return \_strFile.Name;} } }
class MyFiles : IEnumerable<MyFile>
{
private string _directoryPath;
private string _fileExtension = "xml";public MyFiles(string directoryPath) { \_directoryPath = directoryPath; } public string FileExtension { get { return \_fileExtension; } set { \_fileExtension = value; } } #region IEnumerable<MyFile> Members public IEnumerator<MyFile> GetEnumerator() { DirectoryInfo di = new DirectoryInfo(\_directoryPath); FileInfo\[\] rgFiles = di.GetFiles("\*." + \_fileExtension); foreach (FileInfo fi in rgFiles) { MyFile ss = new MyFile(fi); yield return ss; } } #endregion #region IEnumerable Members IEnumerator IEnumerable.GetEnumerator() { DirectoryInfo di = new DirectoryInfo(\_directoryPath); FileInfo\[\] rgFiles = di.GetFiles("\*." + \_fileExtension); foreach (FileInfo fi in rgFiles) { MyFile ss = new MyFile(fi); yield return ss; } } #endregion }
Here is it's implementation :
static void Main() { MyFiles myFS = new MyFiles(@"D:\\TestInterface"); foreach(MyFile FS in MyFiles) { Console.WriteLine(FS.Name); Console.ReadLine(); } }
Here I am trying to Iterate the Files in Certa
Navneet Hegde wrote:
IEnumerator IEnumerable.GetEnumerator()
You dont really need to provide an implementation for that too. Simply return the generic IEnumerable, ie:
return GetEnumerator();
Everything else looks fine :)xacc.ide - now with TabsToSpaces support
IronScheme - 1.0 alpha 4a out now (29 May 2008)