|
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
will return a string with the full path of the current user's My Music folder
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
|
|
|
|
|
Dave is right,
For all those special folders you may be interested in, use Environment.GetFolderPath()
and Environment.SpecialFolder enumeration
They keep moving these things around from one Windows version to the next, so it really is the
only way to make it portable.
|
|
|
|
|
I have a struct:
public struct IITObjectPersistentID
{
public int highID;
public int lowID;
public IITObjectPersistentID(int HighID, int LowID)
{
highID = HighID;
lowID = LowID;
}
public override string ToString()
{
return "{" + highID.ToString() + "." + lowID.ToString() + "}";
}
}
I have overridden ToString(), but I want to be able to specify the normal ToString() arguments. Ie, I want to be able to get the hex display of the numbers, too, like:
IITObjectPersistentID OPIDx = new IITObjectPersistentID(25,50);
string displayAsHex = OPIDx.ToString("X");
How can I write conditional code in the override statement that lets me pass arguments to OPIDx.ToString() ?
|
|
|
|
|
You don't. You just overload ToString by writing a new ToString method that takes the argument. Just as int does.
public string
ToString
(
string Format
)
{
return "{" + highID.ToString ( Format ) + "." + lowID.ToString ( Format ) + "}" ;
}
|
|
|
|
|
I'm sorry, your code confuses me. Are you saying I just need to remove the "override" portion of my method?
|
|
|
|
|
You do appear to be saying that, then, as it worked! Thanks.
So for any subsequent readers, the answer is:
You write the first ToString method as "override" and without parameters - then you write more ToString() overloaded methods without the "override" conditional/declaration/whatever that part of the signature is.
So:
public struct IITObjectPersistentID
{
public int highID;
public int lowID;
public IITObjectPersistentID(int HighID, int LowID)
{
highID = HighID;
lowID = LowID;
}
public override string ToString()
{
return "{" + highID.ToString() + "." + lowID.ToString() + "}";
}
public string ToString(string Format)
{
return "{" + highID.ToString(Format) + "." + lowID.ToString(Format) + "}";
}
}
|
|
|
|
|
Correct, the term to remember here is "overload".
|
|
|
|
|
You don't need to override ToString if your passing arguments.
Every object has a default ToString() with no parameters, which will return the objects name. If you need your own paramaterless ToString then you use override to override the default method with the same signature.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
|
|
|
|
|
I'm not following you.
My struct has two fields. The default ToString() simply returns the name of the struct.
I want my ToString to either return the format I provided {122345.67879} or, say, the same fields in hex {FFFFF.00000}.
(yes I realize that's not proper hex)
So how do I write my ToString override to accept an argument (like "X")?
|
|
|
|
|
Voting 1 because you don't understand isn't going to get you very far on these forums!
I'm in a good mood today however so how about something like this?
public override string ToString()
{
return ToString(string.Empty);
}
public string ToString(string format)
{
return "{" + highID.ToString(format) + "." + lowID.ToString(format) + "}";
}
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
|
|
|
|
|
Thanks - apparently the fix is not including the "override" declaration in the second ToString() method. This was preventing it from compiling.
|
|
|
|
|
You just need to crate one more method in you structure with ToString which contains single argument. like
<pre>
public struct IITObjectPersistentID {
public int highID;
public int lowID;
public IITObjectPersistentID(int HighID, int LowID)
{
highID = HighID;
lowID = LowID;
}
public override string ToString()
{
return "{" + highID.ToString() + "." + lowID.ToString() + "}";
}
internal string ToString(string str)
{
//Do ur code here
}
}</pre>
|
|
|
|
|
Hi,
there are no optional parameters in C#; each combination of parameters results in another method.
ToString() and ToString(string) are two different methods that share their name, but not their signature
(=list of parameter types).
Object class has a ToString() but not a ToString(string).
So when you class derives from Object, it needs an override to provide its own ToString()
and it is not allowed an override keyword on ToString(string).
|
|
|
|
|
Hi,
I load sql data in datagridview, combobox, textbox but i can´t do it to statusstrip object.
At least in normal way. I pass it to other object and then to it.
Any sugestions?
thanks
|
|
|
|
|
Can you explain in a bit more detail what you are trying to do. Putting data into a StatusStrip object is no different from other controls, the difference is that you can't do it easily through the designer (which is what I suspect you're trying to do) but you can through code.
|
|
|
|
|
hi,
I have a application with 1 form (main_form) and 6 usercontrols(login_page, menu_page, item1_page, item2_page, item3_page, item4_page).
The form has inside all usercontrols!!!
When i want to enter menu_page i edit visible = true, and visible = false to other usercontrols
i use delegates to trigger events within any usercontrol or form
it works
someone does it other way?
|
|
|
|
|
Sounds kinda like a home-grown tab control.
At least you're using usercontrols.
You'd have to describe more about how the user navigates.
Depending on what you're doing, I would probably pop up (modal) dialogs.
Typically, when the form loads, I would pop up the login_page.
Once logged in, the user sees the menu_page.
When the user selects a menu item, I pop up the appropriate item_page.
But, like cats, there are many ways to skin it.
|
|
|
|
|
hey im trying to make a program that uses some http features and analyze the response data ,
i have encounter a problem when i get responses which are encoded in this method:
Transfer-Encoding: chunked
Content-Encoding: gzip
does anyone have an idea how can i decode the returned data ?
so it will be readable.
thank you.
Net
modified on Friday, July 25, 2008 5:59 PM
|
|
|
|
|
I write a windows service. It's log on as Local System account. I want to log on as user account for this service. For example administrator account or any other user account on windows. Ok, I can change Local System account to user account using with this steps;
My Computer --> Manage --> Services and Applications --> Services --> "MyService"
Click "LogOn" tab
Select "This account"
This account: type your account (For example .\Administrator)
Password: type your password
How can I write this operation code in C# ?
Best Regards...
|
|
|
|
|
|
I have a loop (below) that has 64 iterations. Every 8 iterations i want to change an int. At the moment, i do the below, but its not a "nice" way to do to.
for (int i = 0; i < 64; i++)
{
if (i == 7 || i == 15 || i == 23 || i == 31 || i == 39 || i == 47 || i == 55)
{
}
}
So, does anyone know how I'd do a calculation to have the same effect as the above?
Regards,
Gareth.
(FKA gareth111)
|
|
|
|
|
Hi,
Use modulus operator (%) and check that the remainder is 0
For example: 7%7 and 14%7 returns 0 while 8%7 and 15%7 returns 1 and so on.
for (int i = 0; i < 64; i++) {
if (i % 7 == 0) {
}
}
[addition]
Of course if you don't actually need the values between you can modify your loop incrementation:
for (int i = -1; i < 64; i=i+8){
if (i == 7 || i == 15 || i == 23 || i == 31 || i == 39 || i == 47 || i == 55) {
}
}
[addition ends]
Hope this helps,
Mika
modified on Friday, July 25, 2008 5:33 PM
|
|
|
|
|
Cheers.
Regards,
Gareth.
(FKA gareth111)
|
|
|
|
|
Hi Gareth,
for powers of 2, don't use modulo, use bitwise AND instead. As in
if ((counter & 7)==0) doEveryEightTime();
|
|
|
|
|
Gareth H wrote:
for (int i = 0; i < 64; i++)
{
if (i == 7 || i == 15 || i == 23 || i == 31 || i == 39 || i == 47 || i == 55)
{
}
}
So, does anyone know how I'd do a calculation to have the same effect as the above?
int counter = 0;
for (int i = 0; i < 64; i++, counter++)
{
if (counter == 7)
{
counter = -1;
}
}
-OR- (additional maths needed but without an extra variable)
for (int i = 0; i < 64; i++)
{
if (i % 8 == 7)
{
}
}
Hope it helps .
Greetings - Gajatko
Portable.NET is part of DotGNU, a project to build a complete Free Software replacement for .NET - a system that truly belongs to the developers.
|
|
|
|