@@ -530,7 +530,40 @@ private void Trash(ref string str)
530530 {
531531 // value trash
532532 var varName = GetRandomName ( ) ;
533- var operation = _rnd . Next ( 0 , 2 ) == 0 ? '+' : '-' ;
533+ char operation ;
534+
535+ switch ( _rnd . Next ( 0 , 5 ) )
536+ {
537+ case 0 :
538+ {
539+ operation = '+' ;
540+ break ;
541+ }
542+ case 1 :
543+ {
544+ operation = '-' ;
545+ break ;
546+ }
547+ case 2 :
548+ {
549+ operation = '*' ;
550+ break ;
551+ }
552+ case 3 :
553+ {
554+ operation = '/' ;
555+ break ;
556+ }
557+ case 4 :
558+ {
559+ operation = '^' ;
560+ break ;
561+ }
562+ default :
563+ {
564+ throw new Exception ( "invalid switch value" ) ;
565+ }
566+ }
534567
535568 string varType ;
536569 int varValue ;
@@ -542,7 +575,7 @@ private void Trash(ref string str)
542575 {
543576 varType = "byte" ;
544577 varChange = _rnd . Next ( 1 , byte . MaxValue ) ;
545- varValue = operation == '+ '
578+ varValue = operation != '- '
546579 ? _rnd . Next ( byte . MinValue , byte . MaxValue - varChange )
547580 : _rnd . Next ( byte . MinValue + varChange , byte . MaxValue ) ;
548581 break ;
@@ -551,7 +584,7 @@ private void Trash(ref string str)
551584 {
552585 varType = "short" ;
553586 varChange = _rnd . Next ( 1 , short . MaxValue ) ;
554- varValue = operation == '+ '
587+ varValue = operation != '- '
555588 ? _rnd . Next ( short . MinValue , short . MaxValue - varChange )
556589 : _rnd . Next ( short . MinValue + varChange , short . MaxValue ) ;
557590 break ;
@@ -560,7 +593,7 @@ private void Trash(ref string str)
560593 {
561594 varType = "int" ;
562595 varChange = _rnd . Next ( 1 , int . MaxValue ) ;
563- varValue = operation == '+ '
596+ varValue = operation != '- '
564597 ? _rnd . Next ( int . MinValue , int . MaxValue - varChange )
565598 : _rnd . Next ( int . MinValue + varChange , int . MaxValue ) ;
566599 break ;
@@ -578,8 +611,8 @@ private void Trash(ref string str)
578611 {
579612 // object trash
580613 var operation = _rnd . Next ( 0 , 2 ) == 0 ? "GetHashCode()" : "GetTypeCode()" ;
581-
582- switch ( _rnd . Next ( 0 , 6 ) )
614+
615+ switch ( _rnd . Next ( 0 , 10 ) )
583616 {
584617 case 0 :
585618 {
@@ -611,6 +644,26 @@ private void Trash(ref string str)
611644 trash += $ "new long().{ operation } ;";
612645 break ;
613646 }
647+ case 6 :
648+ {
649+ trash += $ "new sbyte().{ operation } ;";
650+ break ;
651+ }
652+ case 7 :
653+ {
654+ trash += $ "new ushort().{ operation } ;";
655+ break ;
656+ }
657+ case 8 :
658+ {
659+ trash += $ "new uint().{ operation } ;";
660+ break ;
661+ }
662+ case 9 :
663+ {
664+ trash += $ "new ulong().{ operation } ;";
665+ break ;
666+ }
614667 default :
615668 {
616669 throw new Exception ( "invalid switch value" ) ;
0 commit comments