|
i would say in your SetDefComp you need to simply pass it the list and assign that to lst but that shouldnt really make to much difference with the code you have given.
Are you getting any error messages? or is the list just empty?
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
When I try to make
foreach(string s in def_compare)
Console.Writeline(s);
It doesnt write anything.I guess the list is empty.
I tried how you told me to:
in class 1:
DefCompareProperty df = new DefCompareProperty();
df.SetDefComp(def_compare);
in class 3:
public void SetDefComp(List<string> members)
{
lst = members;
}
And I still have an empty list in class 2.
|
|
|
|
|
do some debugging in your code then...
Put a message box in to show the length of the list before you try to write it...
System.Windows.Forms.MessageBox.Show(def_compare.Length.ToString());
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
It doesn't work because your creating a new instance of DefCompareProperty . Each new instance has its own List and they are kept completely separate.
You can do this two ways, make lst in your DefCompareProperty class static so that there is only one of them which all instances share. Or pass an instance of the DefCompareProperty class to each of your other classes to use so that they both use the same one.
EDIT: If you are passing the same instance around already then damn, I don't know what's going on.
My current favourite word is: Delicious!
-SK Genius
Game Programming articles start - here[ ^]-
|
|
|
|
|
I went for static in get/set class and it worked fine
Thanks very much for the easy solution SK Genius.
Thanks to all for trying to help too.
Cya
|
|
|
|
|
Hi,
you got it rather twisted. Basically what you have is:
1.
a base class DefCompareProperty which holds a list that you can add to, and get.
2.
a derived class DefComparing which inherits from DefCompareProperty, so it too holds the list DefCompareProperty is holding.
3. but then, inside the DefCompare method, you have the line DefCompareProperty df = new DefCompareProperty(); which adds a DefCompareProperty inside the DefComparing object (which is a DefCompareProperty itself), so now DefCompareProperty is actually holding two lists (until DefCompare method is done). Then you add items to the second list, and the method ends, so the second list no longer exists, and it all doesn't make much sense.
So, you are getting everyone confused by using very similar class names; also the SetDefComp() method is badly named, it should reallybe called add since it does not set anything, it adds something.
I would do things differently, something along these lines (not tested):
public class DefCompareProperty : List<string> {}
public class DefComparing:DefCompareProperty {
public void DefCompare() {
this.Clear();
}
}
The main differences are:
1. my classes don't hold lists, they are lists.
2. I operate on the existing list, not on a new one.
Of course you could as well forego class DefCompareProperty and simply write public class DefComparing:List<string> {...}
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.
|
|
|
|
|
No why couldn't the OP make it sound as simple as that... good work Luc
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Luc always uses the force.
|
|
|
|
|
The Force as I see it consists of a few very simple rules. Sort of ten commandments.
One of them is: if it does not work, and/or you don't understand it (isn't that almost the same?) try making it simpler. Simpler code means better understanding AND fewer bugs (and often better performance too).
another one is: use proper names for everything, it really matters.
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.
|
|
|
|
|
I will be looking forward to you article with the full 10... Also perhaps a bible of some sort so we can have a religion that follows logic (maybe a little fuzzy logic too )
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Luc Pattyn wrote:
another one is: use proper names for everything, it really matters.
I like this one. Now we just need to get some way to bring eternal damnation into play if people don't follow your commandments... Hmm...
|
|
|
|
|
Paddy Boyd wrote: Now we just need to get some way to bring eternal damnation into play...
Not really. IMO not obeying such rules makes programming and debugging harder, self-inflicted punishment is provided automatically.
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, i am doing a program to plot time vs speed in excel file. but right now i have some problems into doing so. i am unable to convert the x-axis into time format.. below is the code i have written.... please help by giving examples... thanks lots!!
while (((Microsoft.Office.Interop.Excel.Range)oldsheet.Cells[row, column]).Value2 != null)
{
string splitcell = ((Microsoft.Office.Interop.Excel.Range)oldsheet.Cells[row, column]).Value2.ToString();
split = splitcell.Split(',');
int.TryParse(split[0], out hour);
int.TryParse(split[1], out min);
int.TryParse(split[2], out sec);
int.TryParse(split[21], out rpm);
time = new DateTime(1, 1, 1, hour, min, sec);
newsheet1.Cells[row, column] = time.ToString("HH:mm:ss");
newsheet1.Cells[row, column + 1] = rpm;
row++;
}
row--;
range = newsheet1.get_Range("A2", "B" + row.ToString());
xlChart.Legend.Clear();
Microsoft.Office.Interop.Excel.Axis x = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(Microsoft.Office.Interop.Excel.XlAxisType.xlCategory, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary);
x.CategoryType = Microsoft.Office.Interop.Excel.XlCategoryType.xlTimeScale;
x.BaseUnit = Microsoft.Office.Interop.Excel.XlTimeUnit.xlDays;
//x.MajorUnitScale = Microsoft.Office.Interop.Excel.XlTimeUnit.xlDays;
//x.MajorUnit = 0.0208333333;
x.HasTitle = true;
x.AxisTitle.Text = "Time";
Microsoft.Office.Interop.Excel.Axis y = (Microsoft.Office.Interop.Excel.Axis)xlChart.Axes(Microsoft.Office.Interop.Excel.XlAxisType.xlValue, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary);
y.HasTitle = true;
y.AxisTitle.Text = "Speed";
xlChart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlXYScatterSmoothNoMarkers;
xlChart.SetSourceData(range, Type.Missing);
series = (Microsoft.Office.Interop.Excel.Series)xlChart.SeriesCollection(1);
series.Format.Line.Weight = (float)0.25;
|
|
|
|
|
Im doing some working with creating and deleting access databases. Problem is I dont know how to write the syntax to save to the default program files folder.
IE
if(file.exists(@"C:\Program Files\blah blah))
file.delete(@"C:\Program Files\blah blah);
I would think Id be able to insert something in place of @"C:\Program Files that tells the system to do to the default program files folder whether it be program files or program file(x86).
Any suggestions.
I searched online but havent found anything, probably due to not really knowing what this would be called to search for it.
Thanks
|
|
|
|
|
string programFilesPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles);
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Hi,
what musefan told you is the correct answer to your specific question, however you should not do that at all for several reasons:
1. the "Program Files" folder is not supposed to contain files directly; it holds folders, one per application.
2. the "Program Files" folder is a shared folder, all users can read it, chances are noone can write there (Vista would deny write access, the system admin might decide to make the folder read-only on all Windows versions.
Hence you should store your data files elsewhere; now the SpecialFolder has several useful values, such as AppData (user-specific location) and CommonAppDate (shared by all users).
[ADDED]There too you should obey a folder hierarchy, so create a subfolder either for your company or your product.[/ADDED]
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 Thursday, May 21, 2009 11:04 AM
|
|
|
|
|
Well the program files folder wouldnt have the file directly. I would be storing the database in a software folder inside the program files folder IE Program Files\Softwarename\file
I read elsewhere this is bad practice regardless. A better method would be to create a software folder in My Documents and store whatever I need there. Is this good coding practice?
|
|
|
|
|
Jon Henry wrote: in My Documents
that would be OK (for personal stuff, not shared by several users) provided you still construct the path by using the Environment.SpecialFolder stuff (.MyDocument then), since different Windows versions and different installation choices may move around all such folders quite a bit.
However I tend to reserve MyDocuments for files I create myself, typically ofice documents and such ("foreground files"); not datebases, settings, logfiles and the like ("background files"), which you typically don't want to encounter when browsing the file system. But that is just a matter of taste.
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.
|
|
|
|
|
I am mainly do the coding in c# language. I noticed in Add/Remove programs control panel showing that I have 5 of Microsoft SQL Server listed in there:
Microsoft SQL Server 2005
Microsoft SQL Server 2005 Mobile [ENU] Developer Tools
Microsoft SQL Server Native Client
Microsoft SQL Server Setup Support Files (English)
Microsoft SQL Server VSS Writer
I do not develop code to work with server. I'm not sure if I would do anything with this SQL as I need to free up hard drive space a bit.
Should I remove this from my system?
Any thoughts?
modified on Thursday, May 21, 2009 8:29 AM
|
|
|
|
|
This has absolutely nothing to do with programming...you want more space? then buy a hard drive with a larger storage capacity. Or just uninstall SQL Server and see what breaks
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
SQL server wouldn't be needed unless your applications use it, download Microsoft SQL Management Studio Express and you can connect to the MSSQL database and see what data it contains...
Like the other post, delete some files will free up some space but if you're that close to being full and you need to uninstall applications to get free space then you'd be better off just buying another hard disk.
|
|
|
|
|
I am also a C# programmer. Do I need to have a computer to do programming or can I somehow use my bike?
Oops!!! I didn't wanna be rude.
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
No, you don't need a computer, but I think the bike would be an unnecessary complication.
|
|
|
|
|
Hi,
I am creating a web part for Microsoft SharePoint and i need to add two controls, a userfield (to allow a user to be selected) and a date picker field. So far i have the following code:
protected override void CreateChildControls()
{
btnSubmit = new Button();
btnSubmit.Text = "Add to list";
btnSubmit.Click += new EventHandler(btnSubmit_Click);
Controls.Add(btnSubmit);
txtTitle = new TextBox();
Controls.Add(txtTitle);
dateDueDate = new DateTimeControl();
Controls.Add(dateDueDate);
userAssignedTo = new UserField();
Controls.Add(userAssignedTo);
base.CreateChildControls();
}
protected override void RenderContents(HtmlTextWriter writer)
{
btnSubmit.RenderControl(writer);
writer.Write("<br />");
txtTitle.RenderControl(writer);
writer.Write("<br />");
dateDueDate.RenderControl(writer);
writer.Write("<br />");
userAssignedTo.RenderControl(writer);
writer.Write("<br /><br />");
However, the UserField and DateTimecontrol are causing the web part not to render. I am not sure if i am using the correct field types or adding them correctly.
Any help would be great,
Thanks in advance
|
|
|
|
|
Hi,
I am using xsd.exe to generate the .cs file to serialize and deserialize the xml responce. .cs file contains number os classes. I want to use defauls xml serialization for some classes and custom serialization for some.
<Job>
<tm>
<source>source1</source_transfer_method>
<group>1</group>
</tm>
<active_flag>A</active_flag>
</job>
for the above xml responce xsd had created tow class "job" and "TM". I want to override the serialization of TM class and want to apply custome serialization to create collection (hashtable) for the elements under "TM"
When I Deserialize it both default serialization for "job" class and my custom serialization for "TM" class is not working. Please help.
Using xsd.exe generated below class
[
System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class Job
{
private string active_flagField;
.....and so on
[System.Xml.Serialization.XmlElementAttribute (Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string active_flag {
get {
return this.active_flagField;
}
set {
this.active_flagField = value;
}
}
}
public partial class TM : Hashtable, IxmlSerializable
{
public System.Xml.Schema.XmlSchema GetSchema()
{
throw new System.Exception("The method or operation is not implemented.");
}
public void ReadXml(System.Xml.XmlReader reader)
{
reader.Read();
while ((reader.Name != "TM"))
{
if (reader.NodeType == XmlNodeType.Element)
{
string key = reader.Name;
reader.Read();
string value = reader.Value;
this.Add(key, value);
}
reader.Read();
}
}
public void WriteXml(System.Xml.XmlWriter writer)
{
throw new System.Exception("The method or operation is not implemented.");
}
}
|
|
|
|