Click here to Skip to main content
15,922,584 members
Home / Discussions / C#
   

C#

 
GeneralRe: problem with sql insert using c# Pin
meeram3956-Dec-07 1:11
meeram3956-Dec-07 1:11 
GeneralRe: problem with sql insert using c# Pin
Le centriste6-Dec-07 2:10
Le centriste6-Dec-07 2:10 
QuestionHow to make Multilingual TextBox in C#.NET Pin
D i x y5-Dec-07 23:54
D i x y5-Dec-07 23:54 
AnswerRe: How to make Multilingual TextBox in C#.NET Pin
Skippums6-Dec-07 10:20
Skippums6-Dec-07 10:20 
QuestionShow a PDF file in a MDI application of C# Pin
BinName5-Dec-07 22:58
BinName5-Dec-07 22:58 
GeneralRe: Show a PDF file in a MDI application of C# Pin
CKnig5-Dec-07 23:22
CKnig5-Dec-07 23:22 
GeneralDataGridview help Pin
sindhutiwari5-Dec-07 22:56
sindhutiwari5-Dec-07 22:56 
GeneralRe: DataGridview help Pin
dan!sh 5-Dec-07 22:59
professional dan!sh 5-Dec-07 22:59 
GeneralRe: DataGridview help Pin
suyuan19845-Dec-07 23:07
suyuan19845-Dec-07 23:07 
GeneralRe: DataGridview help Pin
Gopal.S5-Dec-07 23:31
Gopal.S5-Dec-07 23:31 
QuestionHow to change the initial value of DataSet.CaseSensitive (in .NET 2.0, it is false by default) Pin
shintaerp5-Dec-07 22:12
shintaerp5-Dec-07 22:12 
QuestionC# and microthreads - more info wanted Pin
Geert Masureel5-Dec-07 22:10
Geert Masureel5-Dec-07 22:10 
QuestionTCP Class - Send Function Pin
Programm3r5-Dec-07 21:25
Programm3r5-Dec-07 21:25 
GeneralRe: TCP Class - Send Function Pin
CKnig5-Dec-07 23:27
CKnig5-Dec-07 23:27 
GeneralRe: TCP Class - Send Function Pin
Programm3r6-Dec-07 0:32
Programm3r6-Dec-07 0:32 
QuestionRegarding parameterizedthreadstart??? Pin
Ron.S5-Dec-07 21:24
Ron.S5-Dec-07 21:24 
AnswerRe: Regarding parameterizedthreadstart??? Pin
CKnig5-Dec-07 23:26
CKnig5-Dec-07 23:26 
QuestionAbout Combobox's ValueMember and DisplayMember Pin
Zerox MXI5-Dec-07 20:07
Zerox MXI5-Dec-07 20:07 
GeneralRe: About Combobox's ValueMember and DisplayMember Pin
CKnig5-Dec-07 20:13
CKnig5-Dec-07 20:13 
GeneralRe: About Combobox's ValueMember and DisplayMember Pin
Zerox MXI5-Dec-07 20:23
Zerox MXI5-Dec-07 20:23 
GeneralRe: About Combobox's ValueMember and DisplayMember Pin
CKnig5-Dec-07 23:30
CKnig5-Dec-07 23:30 
GeneralRe: About Combobox's ValueMember and DisplayMember Pin
Zerox MXI6-Dec-07 3:10
Zerox MXI6-Dec-07 3:10 
Questionhow to export datagridview contents to excel Pin
Nitin Raj5-Dec-07 19:56
Nitin Raj5-Dec-07 19:56 
GeneralRe: how to export datagridview contents to excel Pin
DKalepu5-Dec-07 22:49
DKalepu5-Dec-07 22:49 
QuestionHow To : coerce a ref to an enum into a ref to an int. Pin
urbane.tiger5-Dec-07 18:59
urbane.tiger5-Dec-07 18:59 
I have a method in a common base class thus :

protected bool SetFlag(bool _new, ref int _flags, int _flag, string _pName)
{
bool __cancelled = false;
bool __old = ((_flags & _flag) == _flag);
if (!__old.Equals(_new)
{
if (!(__cancelled = this.RaisePropertyChanging(__old, _new, pName)))
{
_flags = (_new) ? _flags | _flag : _flags & ~flag;
this.RaisePropertyChanged(__old, _new, pName);
}
}
return __cancelled;
}



In derivatives of the common base I want to use SetFlags as is shown in the example at the end of this post, but I get a message telling me that it can't cast a ref to an AmbientState to an int etc.

If I give SetFlag a Type argument then I can only constrain it to a class(reference type) or struct(value type), but in that case I get compile errors stating that bitwise operations cannot be performed on T objects, ie structs.

The content of _flags (ambientState in the example) must be changed BEFORE PropertyChanged handlers are invoked.

I have a work-around - The _flags parameter is not passed by reference and I've added a delegate method argument to SetFlag that gets invoked between the "flags = ...." and the "this.RaisePropertyChanged...." statements, the delegate looks like

private void saveFlags(int _flags) { this.ambientState = (AmbientState) _flags; )

But like all workarounds its ugly and necessitates documenting why the delegate exists etc.

Rgds PhilD -- Sample usage of SetFlags follows

public class MyClass : CommonBase
{
AmbientState ambientState = AmbientState.ZeroValue;

public bool Morning
{
get { return ((this.ambientState & AmbientState.Morning) == AmbientState.Morning); }
set { this.SetFlag(value, (int) ref this.ambientState, AmbientState.Morning, "Morning"; }
}
[Flags]
private enum AmbientState : int
{
ZeroValue = 0x0

Morning = 0x1
Afternoon = 0x2
Evening = 0x4
Night = 0x8

ClearSky = 0x10
CirrusSky = 0x02
etc
}
}

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.