4 sintax problems in C#: can you help?
1) how do you invoke a constructor *inside* some other consrtuctor
class X{
public X(int i) {...}
public X(int j, string s) { X(j); ... } //wont compile
}
2) is it possible to define methods with default values à là C++?
class X{
public X(int i) {...}
public void abc(int j, int k=0, string s="") { ... }
/*
overloaded forms:
public void abc(int j) { ... }
public void abc(int j, int k) { ... }
public void abc(int j, int k, string s) { ... }
*/
}
3) how do you run code as soon as a class is loaded? something like:
class X{
static { //run as soon as the class is loaded
int i=0;
...
}
public X(int i) {...}
}
4) how to force the redefinition of a static method in a derivate class?
//>>>>>abstract class to avoid instanciation
public abstract class DataStorage {
protected static IDbConnection cn;
protected static DataStorage db;
protected IDataReader dr;
protected IDbCommand cmd;
//create & ini cn HERE(provide a conn strin here!)
//>>>>>abstract to force its redefinition in a derivate class - wont compile bc its static...
protected static abstract bool IniciateConnection();
//create & ini dr, cmd, ...
//>>>>>abstract to force its redefinition in a derivate class
protected abstract void IniciateInstanceObjects();
private DataStorage() { //private to create singleton?
IniciateInstanceObjects();
}
public static DataStorage GetInstance() {
if (cn==null) IniciateConnection();
db=new DataStorage();
return db;
}
//...
}
//here are the derivate classes with overriden méthods - static ones wont compile
public class DataStorageMSA : DataStorage {
protected static override bool IniciateConnection() { //compile error
cn = new OleDbConnection();
cn.ConnectionString="Provider=...";
}
protected override void IniciateInstanceObjects() { //create & ini dr,cmd,...
dr = new OleDbDataReader();
cmd = new OleDbCommand();
}
}
public class DataStorageSQL : DataStorage {
protected static override bool IniciateConnection() { //compile error
cn = new SqlConnection();
cn.ConnectionString="";
}
protected override void IniciateInstanceObjects() { //create & ini dr,cmd,...
dr = new SqlDataReader();
cmd = new SqlCommand();
}
}
any help will be appreciated!...
Answers (2)
0
I know in c# you can do something like this
// If there is selected items do this
if (lisbox.items.selected != null)
{
// Code for your program here if the listbox is selected
}
// If there are no items selected then display this
else
{
// Error display code here
}
You could maybe set up an error checker that way?
0
thank you for replaying my letter but:
1-customer.id is an interger value declare in my customer class
2-rd[0]
only have single value from the stored procedure (select min(id) from customer )
the problem is when there is no data in the table it return Null i try to put all my code in
TRY{}
and
CATCH{}
but i doesnt work ,if you have ny idea to this setuation i need it very much in my project
thanks again
0
I might be of some help....i'm still learning this feel free to correct me :D.
customer.id <= is this customer id an int?
=convert.toint32(rd[0].tostring) <= your trying to convert an array of customer ids to an int?
I'm not sure elaborate on this subject. If your seeing this message it's because you have a string value somewhere, you might need more converts or something.