I guess you need to overload + operator
because we can not directly manipulate /operate the objects ....


Thanks & Regards,
Shrinivas Mada,




On Mon, Dec 28, 2009 at 3:14 PM, Maddy <[email protected]> wrote:

> Dear folks,
>
> As i am working in C# Generics i found this little bit Strange
>
> My code goes like this
> Consider this as my Business Object
>
> Public Class *BO*<type1,type2,type3>
> {
>          private type1 Variable1;
>          private type2 Variable2;
>          private type3 Variable3;
>
> public type1 val1
> {
> set { Variable1 = value; }
> get { return Variable1; }
> }
> public type2 val2
> {
> set { Variable2 = value; }
> get { return Variable2; }
> }
> public type3 val3
> {
> set { Variable3 = value; }
> get { return Variable3; }
> }
>
> }
>
> and Business Access Layer
>
> Public Class *BAL:BO*<Object,Object,Object>//Because i don't want to
> confine my self to work with particular Data type for this
> //Class so i declared it as Object where if i can pass string,datetime,
> int,etc and  It ll do Boxing(data type to Object)
> {
>
>     // take a look at this function as i am declaring a Function to Perform
> "+" operation(for string -> Concatenation and for integer -> Sum)
>     public T getValue<T>()
>     {
>         T temp1 = (T)val1; // I am Type Casting my Object to this Type
>         T temp2 = (T)val2; // I am Type Casting my Object to this Type
>         T temp3 = temp1 + temp2; // I am Adding the values
>         return (temp3); // And returning with the Same Data type "T"
>     }
> }
>
> Declaring in aspx.cs as
>
>  obj.val1 = TextBox1.Text;
>  obj.val2 = TextBox2.Text;
>
> Label1.Text = obj.getValue<string>(); // Here i am passing the generic data
> type as String so the function will perform Concatenation
>
> *ERROR: Operator '+' cannot be applied to operands of type 'T' and 'T'*
>
> The Error shows (As of my Understanding)  that T is Not a Valid Data type
> TO PERFORM "+"
>
> Clarifications required if possible:
> 1. Then Why the Data type T can be Type casted from an Object (T temp1 =
> (T)val1;)
> 2. *Label1.Text *should assign to string type, as i am passing (*Label1.Text
> = obj.getValue<int>();)* so passing type and the return type is recognized
> as String so didn't throw any error but why it cant able to perform
> Concatenation
>
> *Is that A BUG From Microsoft or From My side ????*
>
>
>
> --
> regards
> Sarvesh
>

Reply via email to