[Mono-list] I think that this is a bug.
Dietmar Maurer
dietmar@ximian.com
02 Apr 2002 11:13:30 +0200
Hi Daniel,
I have tested that code with the newest CVS version of mono and it runs
without problems here, so maybe you only need to update mono.
- Dietmar
On Sun, 2002-03-31 at 09:54, Daniel Carrera wrote:
> I found a very strange behaviour in Mono. When I make a class containing
> a string variable, I can concatenate that string fine. However, when the
> class *also* has a double variable, the concatenation fails.
>
> Consider the following code:
>
> ------------------------------------------------
> 1 class Money {
> 2 private double Amount;
> 3 private string Currency;
> 4
> 5 //public Money(double amount,string currency) {
> 6 public Money(string currency) {
> 7 //Amount = amount;
> 8 Currency = currency;
> 9 }
> 10 public string getCurrency() {
> 11 return Currency;
> 12 }
> 13 }
> 14
> 15 class TestMoney {
> 16
> 17 public static void Main() {
> 18 //Money m = new Money(200,"CAD");
> 19 Money m = new Money("CAD");
> 20 System.Console.WriteLine("Currency: " + m.getCurrency());
> 21 }
> 22 }
> ------------------------------------
>
> This runs fine. However, the following does not:
>
> ------------------------------------
> 1 class Money {
> 2 private double Amount;
> 3 private string Currency;
> 4
> 5 public Money(double amount,string currency) {
> 6 //public Money(string currency) {
> 7 Amount = amount;
> 8 Currency = currency;
> 9 }
> 10 public string getCurrency() {
> 11 return Currency;
> 12 }
> 13 }
> 14
> 15 class TestMoney {
> 16
> 17 public static void Main() {
> 18 Money m = new Money(200,"CAD");
> 19 //Money m = new Money("CAD");
> 20 System.Console.WriteLine("Currency: " + m.getCurrency());
> 21 }
> 22 }
> ------------------------------------
>
> Notice, what I've done is I've commented lines 6 and 19 and I've
> uncommented 5, 7 and 18.
>
> Now I get the error:
>
> prompt$ mono ConcatTest.exe
>
> (process:6309): ** WARNING **: unhandled exception
> System.OverflowException: "Number overflow"
> in System.String:.ctor ()
> in System.String:Concat ()
> in .TestMoney:Main ()
>
>
>
> The same error occurs if "Ammount" is a float instead of a double.
> The error *does not* occur if "Ammount" is an int.
>
>
> I hope that someone can make sense out of this.
>
> Daniel.
>
>
> _______________________________________________
> Mono-list maillist - Mono-list@ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list