Inheritance / file locations

  • Thread starter Thread starter Johnny van Cadsand
  • Start date Start date
J

Johnny van Cadsand

Hi,

I know how inheritance works.
But do i have to put all the inherited class files in the same
directory as the class file which inherits is in?? (VB.NET)

When i have a baseclass which i want to use in different solutions, then
i add the class to a solution. The IDE copies the file to the other
solution folder and i have 2 copies of the same class file.

The idea of inheritance is reusable code, but when i have 2 identical
files on different locations do i have to edit them both when something
changes to my baseclass???

Should i use a dll? I know it's a possible solution but not the most nice
one.
Why hasn't MS thought about this?
Has anyone an explanation?

--

==============================================================
Johnny van Cadsand news ( ) cadsand ! demon ! nl

..:: Up to the Sky and Back ::..
 
They have thought about it. I don't know if you have.

If you add an existing class to a solution, all that means is that VS.NET
copies the file. This has nothing to do with code reusability. Because
then, anyone who wants to use your class, would need your source code??

You are supposed to compile the base class into a DLL, and then use the dll
in other projects. It is the perfect solution - and certainly a lot better
then having multiple copies of the source all over the place or having to
have the source code for a class in order to inherit from it. What company
is going to write a control, if the only way anyone can use it is to have
their source code?
 
Marina wrote :
They have thought about it. I don't know if you have.

If you add an existing class to a solution, all that means is that
VS.NET copies the file. This has nothing to do with code reusability.
Because then, anyone who wants to use your class, would need your
source code??

You are supposed to compile the base class into a DLL, and then use
the dll in other projects. It is the perfect solution - and certainly
a lot better then having multiple copies of the source all over the
place or having to have the source code for a class in order to
inherit from it. What company is going to write a control, if the
only way anyone can use it is to have their source code?
Alright...

That's what i thought but it looked strange to me that file copied...

But indeed, you don't need the source!!

Thanks...



--
==============================================================

Johnny van Cadsand news ( ) cadsand ! demon ! nl

..:: Up to the Sky and Back ::..
 
Johnny van Cadsand said:
I know how inheritance works.
But do i have to put all the inherited class files in the same
directory as the class file which inherits is in?? (VB.NET)

When i have a baseclass which i want to use in different solutions, then
i add the class to a solution. The IDE copies the file to the other
solution folder and i have 2 copies of the same class file.

Add the class to one project of type "Class Library" and reference this
project (DLL) from the other projects.
Should i use a dll? I know it's a possible solution but not the
most nice one.

Why not? Sure, for a single class, it doesn't make much sense, but if there
is a set of classes I would add them to a class library.

VS.NET provides a way to reference the file instead of creating a copy of
it: "Project" -> "Add Existing Item..." -> Change the button labeled "Open"
to "Reference File" and press it.
 
Johnny van Cadsand said:
I know how inheritance works.

OK, now concentrate on learning how to use the tool.... ;-)
But do i have to put all the inherited class files in the same
directory as the class file which inherits is in?? (VB.NET)
No.


When i have a baseclass which i want to use in different solutions, then
i add the class to a solution. The IDE copies the file to the other
solution folder and i have 2 copies of the same class file.

Yes, it will do that if you tell it to.

The idea of inheritance is reusable code, but when i have 2 identical
files on different locations do i have to edit them both when something
changes to my baseclass???

That's not how I'd do it.

Should i use a dll? I know it's a possible solution but not the most nice
one.

Well yes, you should fully design your base class before you put it to
use in a bunch of other apps, but you don't have to.
Why hasn't MS thought about this?

What makes you say that? Again, you should really check into what
the tools can do for you, before you ask why they haven't provided
what you need. What you apparently want is provided for, and its
called linking. You can link any file to your current project simply
by telling VS to link the file.
Has anyone an explanation?

When you link a file to your project, it is left in its original directory
and becomes a part of your project, just like the other files. Changes
you make (and save) to the file are reflected back to the original file
in its original directory.

LFS
 
Larry Serflaten wrote :
Yes, it will do that if you tell it to.

I just add an existing class from an other solution to my solution and
the IDE copies it.
I found that...
in a classlibrary it copies the original file but when i add an existing
class to a windows application project it is left in its original
directory and indeed the changes are reflected back to the original
file...

But nevermind the above...

I wonder why it default copies the file when you can link it as well. And
only in a classlibrary.

--
==============================================================

Johnny van Cadsand news ( ) cadsand ! demon ! nl

..:: Up to the Sky and Back ::..
 
Johnny van Cadsand said:
I wonder why it default copies the file when you can link it as well. And
only in a classlibrary.

I certainly don't know for sure, I wasn't making the decisions, but I
would suppose that it was determined that over the long haul, in
most cases, copying the file instead of linking, would be the choice
most often selected.

You can link the file you want by selecting to add an existing item,
and instead of just clicking on the Open button, click on the down
arrow beside the word Open, and select Link File....

LFS
 
Back
Top