silverlight 2 Random 随机数解决方案

using System;
using System.Security.Cryptography;

    public class RNG
    {
        
private static RNGCryptoServiceProvider rngp = new RNGCryptoServiceProvider();
        
private static byte[] rb = new byte[4];

        
/// <summary>
        
/// 产生一个非负数的乱数
        
/// </summary>
        public static int Next()
        {
            rngp.GetBytes(rb);
            
int value = BitConverter.ToInt32(rb, 0);
            
if (value < 0) value = -value;
            
return value;
        }
        
/// <summary>
        
/// 产生一个非负数且最大值在 max 以下的乱数
        
/// </summary>
        
/// <param name="max">最大值</param>
        public static int Next(int max)
        {
            rngp.GetBytes(rb);
            
int value = BitConverter.ToInt32(rb, 0);
            value 
= value % (max + 1);
            
if (value < 0) value = -value;
            
return value;
        }
        
/// <summary>
        
/// 产生一个非负数且最小值在 min 以上最大值在 max 以下的乱数
        
/// </summary>
        
/// <param name="min">最小值</param>
        
/// <param name="max">最大值</param>
        public static int Next(int min, int max)
        {
            
int value = Next(max - min) + min;
            
return value;
        }

    }
posted @ 2008-06-17 01:21 nasa 阅读(433) 评论(3)  编辑 收藏 所属分类: Silverlight

  回复  引用  查看    
#1楼  2008-06-17 11:42 | David      
?
这个和SilverLight有特别的关联?
  回复  引用  查看    
#2楼 [楼主] 2008-07-02 15:22 | nasa      
@David
;) 自己实际做做就知道了
sl中的随机函数不是每一次都生效的.
  回复  引用  查看    
#3楼  2008-07-04 20:20 | 七月@yyway      
如果取随机字符串,一直觉得用GUID是最方便的了。。。 而且,重复几率相对比较小。

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: