|
You could override the ToString() function in the Blog class.
class Program
{
static void Main( string[] args )
{
object obj = "Test from string";
Console.WriteLine("The result of to string is:" + obj.ToString());
obj = new Test();
Console.WriteLine("The result of to string is:" + obj.ToString());
Console.ReadKey();
}
}
public class Test
{
public override string ToString()
{
return "Test from class";
}
}
Using the wrong tool for the job is half the fun.
|
|
|
|
|
Hi,
1.
you could concentrate on the ToString() method which exists for all objects; you should override for most types since for most classes ToString() by default returns a type string.
2.
you should NOT check types by getting the type's name, then string.compare.
C# has the is keyword which returns true when the type matches (directly or through inheritance).
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Hi All,
I'm pretty new here so excuse my ignorance
I've just started learning C# and come from a long history of C/C++/PowerBASIC/Assembly, 20 years total.
To learn C# I decided to jump in with both feet and recreate some past projects for fun. So here is what I want to do and where I am getting stuck.
I have a Layout which consists of Tracks, each Track contains Layers. Think of this like an multi-track audio application and Photoshop combined.
Each Track in a Layout should have a unique Name. Every Layer in a Track should also have a unique Name. This sounds to me like I need to use a Dictionary collection. I also need to iterate over these Tracks and Layers in order to draw them IN the correct order. The order should be user defined and should allow for user re-ordering (MoveUp MoveDown type of thing).
So I'm left thinking I need a Dictionary + Sorted Array by Order collection?
I'm sure this can be done but as I said I'm quite new to C#/.NET and would like some direction.
Thanks!
|
|
|
|
|
A Dictionary might be the way to go, but you will have to be very careful what you use for the key. If you use trackName it will complicate retrieving the display order. Even if you use displayIndex, implementing the move up/down functionality could get complicated.
Without thinking about it for a while, I don't have a better suggestion, but I'm sure that somebody will.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
If by user defined, you just mean the user can reorder them manually, then just a dictionary works fine to create mappings of Tracks to Layers. I thought that the order of keys remains the order in which they were added, also, although I am not sure that the collection supports remove at index and add at index, I would have to hope that it did.
Christian Graus
Driven to the arms of OSX by Vista.
"! i don't exactly like or do programming and it only gives me a headache." - spotted in VB forums.
I can do things with my brain that I can't even google. I can flex the front part of my brain instantly anytime I want. It can be exhausting and it even causes me vision problems for some reason. - CaptainSeeSharp
|
|
|
|
|
You can use queries with orderby clause - then you can have your displayOrder as a part of your Track schema and make sequence ordering by this parameter while maintaining Dictionary capability.
|
|
|
|
|
Just want to say thanks for the advise so far. You've given me some more things to think about and try. I'm going to spend today tinkering again and might post some code later for further advise.
|
|
|
|
|
Ok guys,
Looks like I've gone a thoroughly confused myself here. Perhaps one of you kind folks can chime in and set me straight.
Here are my requirements:
1. Collection of layers called layerCollection
2. Each Layer must have a Name property that is unique to the collection it resides in.
3. You can access each Layer in the collection by Name or Index[]
foundLayer = layerCollection.getLayer("Background"); <-- returns Layer with layerName = "Border"
foundLayer = layerCollection.getLayer("Border");
foundLayer = layerCollection [0];
foundLayer = layerCollection [1];
etc...
Help
Once I figure this part out I'm sure sorting the layerCollection to reorder them will be a simple task.
Thanks again for your help and patience!
|
|
|
|
|
|
Impossible. It has nothing to do with .NET, it has to do with how your PC processes sound. That's precisely what DirectX is for.
Christian Graus
Driven to the arms of OSX by Vista.
"! i don't exactly like or do programming and it only gives me a headache." - spotted in VB forums.
I can do things with my brain that I can't even google. I can flex the front part of my brain instantly anytime I want. It can be exhausting and it even causes me vision problems for some reason. - CaptainSeeSharp
|
|
|
|
|
my code is as follow. I need to fig out a way to handle if results dosnt find any thing sshow yes something was found or no users had been found at this time. Iv tried to fig this out but im unable to do so. Thank you for your time.
DateTime dt = DateTime.Today;
DateTime less5dt = dt.AddDays(-5);
This.cmb1.Items.Clear();
PrincipalSearchResult<UserPrincipal> results =
UserPrincipal.FindByLockoutTime(
adPrincipalContext,
dt,
MatchType.GreaterThanOrEquals);
foreach (Principal result in results)
{
cmb1.Items.Add(result.name);
}
|
|
|
|
|
You don't even have an if statement, so what's the problem with it?
What in this code is a "user"?
Is every result in results a user?
|
|
|
|
|
harold aptroot wrote: You don't even have an if statement, so what's the problem with it?
What in this code is a "user"?
Is every result in results a user?
The users that are locked out in Active directory then it populates them in a cmb1
just want a statement to allow me to show a message to the user yes something was found or now nothing was found. and im unable to fig that out.
|
|
|
|
|
Hi,
bool someUsersWereFound = results.Count!=0;
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
modified on Wednesday, June 10, 2009 1:48 PM
|
|
|
|
|
Luc Pattyn wrote: Hi,
bool someUsersWereFound = results.Count!=0;
Smile
first off THANK YOU !
sorry for the noobieness how would I incorporate this into my code?
|
|
|
|
|
Hi,
MessageBox.Show(results.Count.ToString()+" user(s) found");
PS: I strongly suggest you buy and read a tutorial book on C#. It will teach you the essentials in a structured way.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Luc Pattyn wrote: Hi,
MessageBox.Show(results.Count.ToString()+" user(s) found");
PS: I strongly suggest you buy and read a tutorial book on C#. It will teach you the essentials in a structured way.
Smile
so the bool statment you showed me before i need to place that inside the foreach i understand the messagebox part just not the part on how to get the program to realise nothing is found then display the message nothing found. Iv tried and watched it when i debug the program but i cant fig it out.
Thanks again.
|
|
|
|
|
Hi
Is there a smart way todeserialize an object to form. Instead of typing textbox1.text = object.property..., after the object has been deserialized.
My form has a bunch of controls, and I was just looking for a different way of doing this. I am just looking for ideas I guess?
tom
|
|
|
|
|
Personally, I prefer writing the code to set the values of form elements. Often the pursuit of automagic code features will cause you more pain than it is worth. However, you could use reflection if you really wanted to in a poor man's data binding fashion or implement the data binding interfaces to make your object a valid data source. Or make an object data source for which to bind your object.
|
|
|
|
|
You could try looking at the documentation for ApplicationSettings this gives some examples of doing this sort of thing.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
where would I find those examples you are talking about
|
|
|
|
|
Try here[^], there are lots of useful links on that page, particularly the last one, immediately above the 'See Also'
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Tusen Takk - Norwegian for thank you so much
|
|
|
|
|
My pleasure.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Hi Everyone
please look at following two line this is not working when i execute my prject
int div = Convert.ToInt32(textBox1.Text.Trim());
ptr[0] = ptr[1] = ptr[2] = (byte)((ptr[0] + ptr[1] + ptr[2]) / div);
but if i remove the first line and enter an integer value in place of div variable it works such as following line.
ptr[0] = ptr[1] = ptr[2] = (byte)((ptr[0] + ptr[1] + ptr[2]) / 3);
Following is the full listing may it help you to figurout the problem
a method that convert a bitmap from colored to grayscale
//////////////////////////////////////////////////////////////////////////
public Bitmap GrayScale(Bitmap bmpimg)
{
BitmapData bmpData = bmpimg.LockBits(new Rectangle(0, 0, bmpimg.Width, bmpimg.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
int remain = bmpData.Stride - bmpData.Width * 3;
unsafe
{
byte* ptr = (byte*)bmpData.Scan0;
for (int i = 0; i < bmpData.Height; i++)
{
for (int j = 0; j < bmpData.Width; j++)
{
int div = Convert.ToInt32(textBox1.Text.Trim());
ptr[0] = ptr[1] = ptr[2] = (byte)((ptr[0] + ptr[1] + ptr[2]) / div);
ptr += 3;
}
ptr += remain;
}
}
bmpimg.UnlockBits(bmpData);
return bmpimg;
}
|
|
|
|