Hi.
I have a problem with the scope of an object in my C# desktop application for Windows. I would like to instantiate an object and have the object's properties available in my code files behind a number of different windows forms. However, I am seeing CS0103 errors saying "the name does not exist in the current context". I had assumed that because all of the code files use the same namespace, that the object's properties would be available but I've obviously gone wrong somewhere.
namespace TDTestSNWF { public partial class Main : Form { Transducer newTD = new Transducer(-1); public Main() { InitializeComponent(); newTD.SetTDType(-1); }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using TDTestSNWF; namespace TDTestSNWF { public partial class frmSelectTestType : Form { public frmSelectTestType() { InitializeComponent(); } public void UpdateSelectTestTypeForm() { string strTDType; newTD.SetTDTypeDesc("TEST"); switch (newTD.GetTDType()) { case 1: this.Hide(); strTDType = "Non-Smart transducer"; break; case 2: strTDType = "Smart transducer"; break; case 3: strTDType = "Non-Smart transducer with zero"; break; default: strTDType = "Unrecognised transducer type"; break; } }
The error appears in the second code snip where newTD is referenced.
What am I doing wrong?