Re: Help With Nesting Classes In Library
- From: joey.powell@xxxxxxxxxxxx
- Date: 23 Jun 2006 13:50:46 -0700
I just want a logical way to oranize the information and to make it
accessible from function calls to the DLL.
I have one main file that contains a header and several, varying length
records.
I want to set it up so that I can create an instance of the class...
MyClass someclass = new MyClass();
and then call the open method...
someclass.Open();
Once the open method is called I would like to be able to do things
like...
someclass.Header.ReadMyCode;
someclass.Header.WriteMyCode;
I can handle all of the code to do the reading and writing...I just
need to organize the classes, properties, etc... better.
Any suggestions appreaciated.
joey.powell@xxxxxxxxxxxx wrote:
There will be exactly one MyCode for the header. There is only one
header.
Bruce Wood wrote:
joey.powell@xxxxxxxxxxxx wrote:
I am writing a class that will do some binary file IO. The class will
need to read a header from the binary file, and it will also need to
read a varying number of records in the file. I currently have two main
methods: Open(string FilePath) and Close(). I would like to read all of
the data into variables whenever Open is called. I would like to have a
Header (sub?)class within the main class, and maybe a collection or
array for the records. The following is a snippet of what I have so
far...
You're right: there's some confusion here. I've made some notes
in-line.
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace MyNameSpace
{
public class MyClass
{
private FileStream fsMyFile;
private BinaryReader brMyFile;
public void Open(string FilePath)
{
fsMyFile = new FileStream(FilePath, FileMode.Open,
FileAccess.ReadWrite);
brMyFile = new BinaryReader(fsMyFile);
The following line should compile fine. It doesn't matter that Header
is nested inside MyClass: you're just setting a static property of the
class Header to be 2.
Header.MyCode = 2;
}
public void Close()
{
brMyFile.Close();
fsMyFile.Close();
}
public static class Header
{
private static int _MyCode;
public static int MyCode
{
get { return _MyCode; }
set { _MyCode = value; }
}
}
}
}
========================
I want to be able to reference this dll to other projects and then use
it like...
MyClass someclass = new MyClass();
someclass.Open("[path to file]");
The difficulty with the following is that you're trying to use a static
class name as though it were a property name, and an instance property
at that. The first thing you have to decide is whether MyCode is an
instance-level thing (that is, there is one MyCode for each Header that
you create) or whether it's a static thing (that is, there is only one
MyCode in the entire program, no matter how many Headers or MyClasses
you instantiate). Once you have that sorted out, I can give you more
information on how to achieve what you want.
.
- Follow-Ups:
- Re: Help With Nesting Classes In Library
- From: Bruce Wood
- Re: Help With Nesting Classes In Library
- References:
- Help With Nesting Classes In Library
- From: joey . powell
- Re: Help With Nesting Classes In Library
- From: Bruce Wood
- Re: Help With Nesting Classes In Library
- From: joey . powell
- Help With Nesting Classes In Library
- Prev by Date: Re: return a private enum
- Next by Date: How to access object in array by property value?
- Previous by thread: Re: Help With Nesting Classes In Library
- Next by thread: Re: Help With Nesting Classes In Library
- Index(es):
Relevant Pages
|