I'm very fresh to C# Currently learning Operator overloading i'm trying to do something like this:
string val = 500; (I can't implicitly)
and then
Number n1 = val;
I manages to get the Number n1 = someintvalue, for instance:
Number n1 = 500;
like this:
public struct Number
{
public int Value { get; set; }
public Number(int Val)
{
Value = Val;
}
public static implicit operator Number(int num)
{
return new Number(num);
}
}
However, when trying to make Number n1 = val; (when val is a string) I simply cant since the first line cant compile:
string val = 500;
and the following wont work:
public static implicit operator string(int A)
{
return new string(A);
}
because of 1 error which i can not understand
1)User-defined conversion must convert to or from the enclosing type
by the way i get the idea of op overload
underthis specific case of: return new Number(num);
I simply init the ctor
still need some more fundemental understanding
thx ahead!
structunless you understand the difference between it andclass, and explicitly need astruct. Mutable structs can cause all sorts of problems that are usually unnecessary.string val = 500;is poor practice. If you want a string then use a string:string val = "500";C# is a strongly-typed language and should be treated as such - adding multiple type conversion overloads erodes that type safety.