|
in this version of c# all parts of a class must be in one file.
in the next version you will be able to split the code up using "Partial Types"...
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
Thank you!
Ken Galer
Electrical Engineer
Preferred Utilities Corp.
Danbury, CT 06810
|
|
|
|
|
Philip Fitzsimons wrote:
in this version of c# all parts of a class must be in one file.
But this doesn't mean that you can't define non-class dependant enum s, delegate s, etc... somewhere else.
And, if you want to split members into several files to make things more organizable, then you might as well take a look at the #region [^] preprocessor directive. In VS.NET and SharpDevelop, you can expand and collapse the code between two #region and #endregion directives.
- Daniël Pelsmaeker
"Let others praise ancient times; I am glad I was born in these."
- Ovid (43 BC-AD 17) Roman poet
|
|
|
|
|
Why does it seem reasonable to please the method that the event handler calls in another file? If the method is on the class that has the event handler, just call it. If it belongs to another class, make sure the class with the event handler has a reference to that class (unless it's a static method) and then call it on that object (or Type if it's a static method). This is just practical and common object oriented programming.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Heath Stewart wrote:
Why does it seem reasonable to please the method that the event handler calls in another file?
I'm thinking of a case where the event is caused by a menu selection and that the same code would be run by other events such as a context menu, a toolbar button, or a drag-n-drop. If all these events could just call the same method, this would just be a way to keep things clean and obvious. I realize (now) that this could be a private method in the class.
I was thinking a different file because it seems to me (based on very limited experence) that the file size is getting rather large. Just considering the stuff that handles the controls and events, etc. is large enough but if you also include the many different methods (that could be many pages long) called by the events it could get VERY large, hard to navigate, and slow down the build.
I'm not sure if I'm being clear. As I buld my the applcation and add more functionality it usually consists of adding another event in form1.cs and adding code for the event. If form1 is the main form for a large project it's easy to imagine 50-100 events and associated code. GASP!
Should I just not worry about it and make use of the methods dropdown box in VS and #region attributes or make some attempt at breaking the code into more managable files? Is is normal to have these large code files in C# projects?
I may be stuck in C thinking mode.
Thanks,
Ken Galer
Electrical Engineer
Preferred Utilities Corp.
Danbury, CT 06810
|
|
|
|
|
The size of the source file doesn't matter. It's the size of the compiled Type, but this really isn't an issue, either. The only thing that dictates how big an instance of that Type is (an object) is the fields that are holding data. The System.Windows.Forms.Control Type is huge, for example, but an instance of one really would be that big at all.
Yeah, using #region s effectively is a good idea. I use them a lot and they definitely help, as does the member bar at the top of the source file window.
The partial classes mention elsewhere in this thread can help this problem, but it really doesn't matter. The main reason for partial classes is for the Avalon presentation layer in Longhorn, where part of the class is defined by XAML, and part of the class is defined in the code-behind file, almost like in ASP.NET except the .aspx file is actually compiled at run-time into a class that derives from your code-behind class, which derives from System.Web.UI.Page (the same concept is true for .ascx files as well). That's just derivitive classes, though, not partial classes.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
How can I serialize System.Web.UI.WebControls.Unit class?
I have web control's properties stored in session and I need them serializable. Any suggestions?
|
|
|
|
|
You can either use an ISerializationSurrogate along with your serialization formatter, or have the parent serialize and deserialize he struct's members and don't serialize the struct itself.
How are you serializating this? That might help answer your question a little better.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Ok with the help of this list I am getting somewhere with interfaces... But I have a little trouble with the C#/.NET reference documentation.
My question
What does the Type.GetInterface Method return if the type does not have the requested interface. The .NET documentation does not specify this in the methods documentation?
Thanks for helping
I am a bit green to this environment but I am getting there quickly with this site/list.
|
|
|
|
|
Return Value
A Type object representing the interface with the specified name, implemented or inherited by the current Type, if found; otherwise, a null reference (Nothing in Visual Basic).
...straight form the Type.GetInterface documentation. As a norm, methods that return reference types typically return null in cases like this, or just throw an exception if there's an error.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Hi,
How can I clean the console in a C# console application ?
(juste like the cls dos command).
Regards,
Matthieu
|
|
|
|
|
Yep, Microsoft haven't included one method to do this on the Console class,
you can find some Console extended clas if you search, i don't try that.
Luck!
----------------------------------------------------
Q no seas un paranoico no quiere decir q nadie no te persiga
|
|
|
|
|
I want to extend then .net framewok's usercontrol,to make it has a showdialog like windows forms. How Can i get it???
Thanks a lot!!
|
|
|
|
|
Just like you would do it when not working on an UserControl :
MainForm frm = new MainForm();
frm.ShowDialog(this);
|
|
|
|
|
Hi! I think you maybe mistake what i said! I mean the UserControl has the ShowDialog() method acts as the showdialog() method of the window forms. For example,there is a userControl instance: "usercontrol1",When I click a button,I call The usercontrol1's method usercontrol1.Showdialog(),and the usercontrol1 will be showed just like we show a Form instance with then showdialog() method.
|
|
|
|
|
Even I'm confused(not unusal). You want usercontrol1 to call showdialog on itself What's the point?
|
|
|
|
|
A control can't show itself as a dialog. This comes down to Windows styles and messages, since the System.Windows.Forms controls are just wrappers for native controls (Common Controls).
You could add a ShowDialog method that adds the control to a borderless form and shows the form, but you can't show the control itself. It just isn't possible - it needs a Windows frame to host it.
So you could do something like this:
public void ShowDialog()
{
Form f = new Form();
f.FormBorderStyle = FormBorderStyle.None;
f.Size = this.Size;
f.Controls.Add(this);
f.ShowInTaskbar = false;
f.ShowDialog();
f.Dispose();
}
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Hi Heath
I have been trying this method to get access to the UITypeEditors, but I keep on gettting SEHExceptions, any ideas?
Cheers
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Not really. The description, "Represents Structured Exception Handler (SEH) errors.", doesn't even help much. I take it you're talking about the UITypeEditor s like the ColorEditor (or whatever that nifty one is) that are internal to the .NET BCL? Or just to host your own in a control?
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Heath Stewart wrote:
I take it you're talking about the UITypeEditors like the ColorEditor (or whatever that nifty one is) that are internal to the .NET BCL? Or just to host your own in a control?
Well both, so I can use an existing infrastructure. And reuse my custom editors in the propertygrid again. Have a look at the nightmare of the propertygrid thru a disassembler. Things just dont make sense anymore. Like the "dropdownui" is a control hosted in a form hosted in a control. I mean crazy, and funny unsafe calls... maybe they made it intentionally like that!
Also things like: TypeConvertor.EditValue() returns immediately, so u to somehow block it, without having access to the code, i say man, its a nitemare (R18)
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
|
If you just want to show or hide a UserControl , than you can use one of the following:- Call
Show [^] to show the control, and Hide [^] to hide it again. - Set
Visible [^] to true to show the control, and to false to hide it again.
If you want to do something else, then please clarify it.
- Daniël Pelsmaeker
This is Linux country. On a quiet night, you can hear NT re-boot.
|
|
|
|
|
I want to know the complete information of a Database...
how many tables it have what r there manes...
each table have how many attributes and what r there names......
and want to show it in a treeview...like this
TreeView1.Nodes(0).Nodes.Add(snode)
using OleDbConnection
i execute query like this
select * from emp
Table.Columns.Count
Table.Columns.Item(count).ToString
through this i came to know the column number and name
but want to know full information about a database.....
Nothing ...........................................................
|
|
|
|
|
ADO.NET is a set of abstract classes. It isn't meant to provide you with everything, nor is the rest of the .NET Framework for that matter. If the database you're querying supports schema information queries, you can use that information (SQL Server does, see the SCHEMA_INFORMATION tables you can query, but in that case you'd be better off using the System.Data.SqlClient namespace for better optimizations for SQL Server).
If the database doesn't support schema information, you'll probably have to start P/Invoking a lot of the old ADO calls (note, that's not ADO.NET, just ADO). Because that, too, is an abstract API (though not quite as abstract), it might not get you everything you want to know either. Many times, though, the OLE DB provider can get you that stuff, but it is usually specific to the OLE DB provider, not to ADO itself.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
i didnt get the point pzl tell me the more speacific....
Nothing ...........................................................
|
|
|
|