2008-11-18 32 views

Trả lời

5

EDIT: theo đề nghị Halr9000 của

$foo = "300-"; 
$bar = 0; 
$numberStyles = [System.Globalization.NumberStyles]; 
$cultureInfo = [System.Globalization.CultureInfo]; 

[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar); 
0

Nếu bạn chắc chắn rằng các dấu hiệu có thể là - hoặc +, String.Replace có thể hữu ích.

Nếu bạn có nghĩa là 323- phải trả về -323, việc kiểm tra dấu và nhân nó bằng -1 sẽ giúp ích.

2
[System.Globalization.NumberStyles]::AllowTrailingSign 

Tôi cũng nên chỉ ra rằng khi tôi xử lý enums nói chung, đôi khi tôi có thể nhận được bằng cách nhập chuỗi. Ví dụ. trong trường hợp này, chỉ cần đặt

"AllowTrailingSign" 

lưu ý cuối cùng, khi tròng một Enum cho tất cả các giá trị có thể, sử dụng dòng:

[System.Globalization.NumberStyles] | gm -static 
1

Dưới đây là một cách tốt hơn để có được các giá trị enum:

$type = [System.Globalization.NumberStyles] 
[enum]::GetValues($type) 
+0

Xem ms với tôi bạn có nghĩa là: $ type = [System.Globalization.NumberStyles]; [enum] :: GetValues ​​($ type); –

Các vấn đề liên quan