|
2 options.
1) Cast before calling method:
public void main()
{
((Write)a).Write();
}
2) Take correct typed input
class execute
{
Write a;
public execute(Write o)
{
a = o;
}
}
|
|
|
|
|
Thank you for answering. But what if I don't know the correct type? For example, I want to make class execute receive another object that also has a "write" method. Using cast I would have to make another class. I wanted to make this execute class generic enough so it would receive any object and execute its write method.
-- modified at 11:42 Tuesday 11th April, 2006
|
|
|
|
|
You need to use interface
public interface IWrite()
{
void write();
}
public class myClass : IWrite
{
public void write()
{
Console.writeline("Hi");
}
}
sorry dont have VC# in this PC but u can search the web for interface
|
|
|
|
|
<br />
<br />
public class BaseWriter<br />
{<br />
public virtual Write()<br />
{<br />
}<br />
}<br />
<br />
public class FileWriter:BaseWriter<br />
{<br />
public override Write()<br />
{<br />
}<br />
}<br />
<br />
public class XMLWriter:BaseWriter<br />
{<br />
public override Write()<br />
{<br />
}<br />
}<br />
<br />
public class MainApp<br />
{<br />
<br />
public static void Main()<br />
{<br />
BaseWriter baseWriter1=new FileWriter(); <br />
BaseWriter baseWriter2=new XMLWriter();<br />
<br />
Writer(baseWriter1);<br />
Writer(baseWriter2);<br />
<br />
}<br />
<br />
public static void Writer(BaseWriter writer)<br />
{<br />
writer.Write();
}<br />
<br />
}<br />
<br />
|
|
|
|
|
You could use reflection:
public execute(object o)
{
MethodInfo methodInfo = o.GetType().GetMethod("write");
if (methodInfo != null)
methodInfo.Invoke(o, null);
}
www.troschuetz.de
|
|
|
|
|
It seems reflection is the most apropriate for what I want to do. Thanks everyone for the suggestions.
|
|
|
|
|
Hi,
How does one assign a "no value" to a DateTime object. Assign it null won't work because it's a value type.
The reson why I ask is because I have a function, that would check a date value, if it is "no value", the return DBNULL.Value, or return the value of the string. This is for database insertion.
Currently I have the following:
DateTime objDOB;
if (txtYY.Text == string.Empty || txtMM.Text == string.Empty || txtDD.Text == string.Empty)
objDOB = new DateTime(1800, 01, 01); // Default "blank" date
else
objDOB = new DateTime(Int32.Parse(txtYY.Text), Int32.Parse(txtMM.Text), Int32.Parse(txtDD.Text));
I would have liked to change the objDOB = new DateTime(1800, 01, 01); to objDOB = null; but this is not going to work.
Can someone please advise me on what to do?
Regards,
ma se
(South Africa)
|
|
|
|
|
I tend to use DateTime.MinValue instead of an arbitary "null" date like you have done.
|
|
|
|
|
|
You can use SqlDateTime, it allows you to put a SqlDateTime.Null.
|
|
|
|
|
Should you be using .NET 2.0, you can use nullable types. By declaring your variable of type DateTime? you can then assign it to null, and this seems to work pretty much transparantly through to databases.
I've found this very useful lately, and generally when I'm dealing with nullable databases columns I always use nullable types to represent the values within them in code - DBNULLs just disappear.
Regards,
Rob Philpott.
|
|
|
|
|
If I do the following:
DateTime objDOB = null;
...then I get the following error:
Cannot convert null to 'System.DateTime' because it is a value type.
What do you mean by DBNULLs just disappear?
Regards,
ma se
|
|
|
|
|
You need to be using Visual Studio 2005 for this to work, and you need to use nullable types (put a question mark after the type):
DateTime? dob = null;
Then, for instance, when you come to pass the date to Sql Server you could on your SqlCommand use:
command.Parameters.Add("@date", SqlDbType.DateTime).Value = dob;
.. and if dob is null, you'll get a DBNULL in the db.
Regards,
Rob Philpott.
|
|
|
|
|
I want tutorial for using Design Pattern which includes DTO,FACADE,BO,DAO in asp.net(c#).if someone having please send.Thank u.
SRIDHAR
|
|
|
|
|
There are several good books out there GoF (Gang of Four) and many from the Martin Fowler Signature Series from Addison Wesley, but if you are just looking for a website, I might recommend you check out Design Patterns[^].
|
|
|
|
|
How can I change the refresh rate to my monitor in C#? I nee a sample of code. Can somebody help me? Thanks
Da_Masca
|
|
|
|
|
Dear gurus,
I have some beginners question.
Visual Studio has a nice "look and feel" with all the splitters and the tabbed views, docking .....
Is this type of gui available as some framework from microsoft or do I have to program it manually.
Do you have some links for me?
Thank you for your help ! ! ! !
-- modified at 9:36 Tuesday 11th April, 2006
|
|
|
|
|
|
|
The 2.0 version of the .NET Framework includes the ToolStrip family of controls. That will let you give your apps menus and toolbars similar to those in VS 2005. The docking however, is on your own.
Luis Alonso Ramos
Intelectix
Chihuahua, Mexico Not much here: My CP Blog!
|
|
|
|
|
can any professional tell my how i will dispose my object if i had created class contating various object like Datasets and Database Adapter , i have tried to implement IDisposable interface but when watching my application in Windows Task Manager i see the memory size going bigger time after another untill thrown an exception saying MemoryOut , i have called Dispose method for .NET Object (Datasets and Database Adapters) but it was growing also, my question is how could i dispose my string and integer variable beside my objects in the class immedialtelly and don't wait for the garbage collector ........
agmb
|
|
|
|
|
Include both a Dispose method and a destructor, to make sure that the object is always disposed of:
public void Dispose() {
if (this.myData != null) {
this.myData.Dispose();
this.myData = null;
}
GC.SuppressFinalize(this);
}
~MyClass() {
this.Dispose();
}
The task manager is not suitable for monitoring memory usage for .NET applications. The size reported also includes the unused heap space. You shouldn't get a MemoeryOut exception, though, that indicates that there is some problem.
You only have to dispose of classes that have a Dispose method. Strings are fully managed and doesn't need to be disposed. Integers are value types, so they are not allocated in the heap at all.
The garbage collector manages all the removal of unused objects, and you normally don't need to bother how it does that. Garbage collections are performed when needed, and when it's appropriate. If you run into memory problems, it's rarely the fault of the garbage collector, but more likely a memory leak in the code you are using.
---
b { font-weight: normal; }
|
|
|
|
|
Thanks alot for your description , but suppose there is a memory problem or GC problem , should i reinstall .NET Framework to my machine (WIndows 2000 Server)?
agmb
|
|
|
|
|
Yes, you can try that. I don't really expect it to help, but it will at least elliminate a possible reason for errors.
---
b { font-weight: normal; }
|
|
|
|
|
Hi everyone,
Please help me with this program:
A program to simulate the calculation of 1 + 2 + 3 ...+ 999 +1000.
Use multiple threads to simulate multiple reactions in an array of 1000 elements happening at the same time.
For example, 1 + 2 = 3
4 + 6 = 10
3 + 5 = 8
7 + 9 = 16
8 remaining
and then those numbers continue add each other randomly, the process continues until there is only 1 number left.
Thanks so much
eric
|
|
|
|