小编bug*_*ixr的帖子

确定骰子卷中显示的数字的频率

对于一个游戏,我试图确定某个#将在给定的掷骰子#上出现的频率.我知道......这个问题似乎很奇怪.让我试着用实数来解释它.

因此,对于1个芯片,每个数字的频率将是相同的.1-6将显示相同的次数.

现在2个骰子,事情变得不同了.我想5,6,7将是最频繁滚动的,而频谱两端的数字将显示较少或根本不显示(在1的情况下).我想知道如何计算这个列表并以正确的顺序显示它们,从最常见到较不频繁.

有什么想法吗?


@duffymo - 虽然有一些算法来提出它会非常好.似乎上述方式需要大量的手工采摘和数字放置.如果我的死亡数量是动态的,可以说是10,那么我认为手工操作将是无效的和麻烦的.:)

algorithm probability dice

5
推荐指数
3
解决办法
9600
查看次数

使用反射设置对象属性的属性

我有两节课.

public class Class1 {
   public string value {get;set;}
}

public class Class2 {
   public Class1 myClass1Object {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我有一个Class2类型的对象.我需要在Class2上使用反射来设置value属性...即,如果我在没有反射的情况下这样做,这就是我要去做的事情:

Class2 myObject = new Class2();
myObject.myClass1Object.value = "some value";
Run Code Online (Sandbox Code Playgroud)

有没有办法完成上述操作,同时使用反射访问属性"myClass1Object.value"?

提前致谢.

asp.net reflection c#-3.0

5
推荐指数
1
解决办法
4692
查看次数

Windows Service Plus GUI/C#

我见过一些作为Windows服务运行的应用程序,但仍然可以提供一个GUI,允许用户查看实际发生的情况.

例如,我们有一个构建报告的Windows服务.管理员希望看到许多统计信息,例如排队的报告数量,正在使用的内存数量,平均构建时间等.

我们想要做的是为管理员提供一种方法来查看 - 例如可以连接到窗口服务以收集和显示此信息的应用程序......或者可能是应用程序本身可以提供自己的方式GUI并在请求时显示它.现在,应用程序唯一能够创建日志文件.

有没有办法做到这一点?

c# windows-services

5
推荐指数
1
解决办法
3539
查看次数

实体框架 - 将字段值更新为当前数据库服务器时间

我从数据库中撤回了一个实体对象,我需要将日期更新到数据库服务器的日期/时间 - 通常你可以通过使用SQL getDate()函数设置它来实现这一点.

如何在以下场景中完成此操作:

var client = context.client.Where(c=>c.clientID == 1).FirstOrDefault();

// the value needs to be the value of the server's current date, i.e, getDate()... not DateTime.Now
client.someDate = <somevalue>;
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-framework-4

5
推荐指数
1
解决办法
4257
查看次数

WPF:DataBinding一个ListBox,其中每个项目都是制表位

我刚刚构建了一个包含ListBox的WPF表单.ListBox已将TextBox控件列表绑定到它.我需要让每个TextBox控件都成为TabStop,以便用户可以点击tab,键入数字,再次点击Tab键并键入下一个数字等.

问题是,ListBox本身捕获了选项卡,然后下一个选项卡跳转到ListBox之后的后续控件.

有没有办法让ListBox中的每个TextBox都是tabbable(或者可能是另一种类型的数据绑定控件)?

谢谢

c# wpf .net-3.5

4
推荐指数
1
解决办法
2707
查看次数

ExpandableList getChildView每个子项运行两次

我有ExpandableList,我分配给扩展BaseExpandableListAdapter.在这里,我实现了getChildView为每个子设置并返回View 的方法:

public View getChildView(int groupIndex, int childIndex, boolean isLastChild, View convertView, ViewGroup parent) {

    LinearLayout layout;
    if (convertView == null) {
            layout = (LinearLayout) LayoutInflater.from(MyApp.getContext()).inflate(R.layout.rooms_room_list_row, parent, false);
        } else {
            layout = (LinearLayout) convertView; 
        }

    // Do some custom stuff with views on the layout
    ...

    return layout;

}
Run Code Online (Sandbox Code Playgroud)

在调试时,我注意到getChildView每个孩子执行两次.传入的所有值(即groupIndex,childIndex,isLastChild)都是相同的...所以在第3组中,如果我有两个孩子,我会看到:

groupIndex = 3, childIndex = 0

然后

groupIndex = 3, childIndex = 1

然后它重复:

groupIndex = 3, childIndex …

android

4
推荐指数
1
解决办法
4185
查看次数

C#RegEx - 只获取字符串中的第一个匹配项

我有一个输入字符串,如下所示:

level=<device[195].level>&name=<device[195].name>

我想创建一个将解析每个<device>标签的RegEx,例如,我希望从我的输入字符串中匹配两个项目:<device[195].level><device[195].name>.

到目前为止,我对这个模式和代码运气不错,但它总是发现两个设备标签都是一个匹配:

var pattern = "<device\\[[0-9]*\\]\\.\\S*>";
Regex rgx = new Regex(pattern);
var matches = rgx.Matches(httpData);
Run Code Online (Sandbox Code Playgroud)

结果是matches包含值的单个结果<device[195].level>&name=<device[195].name>

我猜测必须有一种'终止'模式的方法,但我不确定它是什么.

c# regex

4
推荐指数
1
解决办法
3783
查看次数

使用"特殊"表将2字节转换为十进制

我有一个需要转换为十进制值的2字节数组(21,121).我从中读取数字的硬件包括手册中这个方便的小表:

高低转换率

问题是,我不确定这个方便的小桌子试图告诉我什么.有人可以帮助解释它并建议一种方法,我可以使用c#将其转换为十进制?

我一般习惯BitConverter这个转换,但在这种情况下,我得到30977的值.由于这是一个温度值,我发现很难相信它是那么热...所以我怀疑我经常使用BitConvert isn不够.

c#

4
推荐指数
1
解决办法
657
查看次数

MVC 3 - FormsAuthentication - 无法访问我的登录操作

我正在使用MVC 3和FormsAuthentication:

<authentication mode="Forms">
  <forms loginUrl="~/Account/" timeout="2880" />      
</authentication>
Run Code Online (Sandbox Code Playgroud)

我的帐户/索引页面显示一个登录页面,然后使用Jquery,它会发送一个帖子到帐户/登录来验证用户.这是我处理它的AccountController动作:

[HttpPost]
[Authorize(Users = "*")]
public ActionResult Login(string userName, string password) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

发布的Jquery:

$.post("/account/login", {
                "userName": $("#userName").val(),
                "password": $("#password").val()
            }, function (data) {
...});
Run Code Online (Sandbox Code Playgroud)

以上所有工作,但现在我想限制对网站的一般访问,所以我把它添加到我的根web.config:

<authorization>
  <deny users="?" />      
</authorization>
Run Code Online (Sandbox Code Playgroud)

为了尝试允许访问帐户控制器,我添加了这个:

<location path="~/Account">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

这是我的问题.我可以查看登录页面(帐户/索引),但我无法提交到帐户/登录.当我通过Fiddler观察正在发生的事情时,我会在发布到该页面时从服务器返回此文本:

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Account/?ReturnUrl=%2faccount%2flogin">here</a>.</h2>
</body></html>
Run Code Online (Sandbox Code Playgroud)

似乎当我将"〜/ Account"添加到完整的授权用户列表时,它实际上并不像在非mvc项目中那样工作.在MVC 3中有没有特殊的方法呢?

razor c#-4.0 asp.net-mvc-3

3
推荐指数
1
解决办法
3023
查看次数

如果 Windows 设置为“自动登录”,则 GetLastInputInfo API 不起作用

我使用 Windows API 调用 GetLastInputInfo 来确定系统是否空闲。这几乎适用于任何情况,除非 Windows 设置为绕过用户名/密码并自动登录。

在这种情况下,查询 GetLastInputInfo 总是返回 0。在正常情况下,它会返回最后一次输入发生时的系统滴答计数。

有谁知道为什么?或者有没有人知道确定Windows会话是否空闲的替代方法?

编辑

这就是编写代码以检测当前系统空闲时间的方式。检测发生在计时器上,无论计时器运行多长时间,当 Windows 设置为“自动登录”时,GetLastInputInfo 将始终返回 0。

        long lastInputTicks = 0;
        long idleTicks = 0;

        LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
        lastInputInfo.cbSize = (uint)Marshal.SizeOf(lastInputInfo);
        lastInputInfo.dwTime = 0;

        if (GetLastInputInfo(ref lastInputInfo)) {
            lastInputTicks = lastInputInfo.dwTime;

            var systemUptime = GetTickCount();

            idleTicks = systemUptime - lastInputTicks;
        }

        return new TimeSpan(0, 0, (int)(idleTicks / 1000));
Run Code Online (Sandbox Code Playgroud)

谢谢

更新

我已经确认这只是因为代码在服务中运行。

澄清:在不使用自动登录的正常情况下,用户在控制台登录,上面的代码 - 即使作为服务运行 - 将返回正确的用户不活动时间。

但是,如果打开了自动登录,则 Windows 会话似乎不会作为典型的控制台会话运行,因此不是跟踪。这仅适用于从服务运行代码而不是从“用户空间”运行的代码 - 如果从用户空间运行,它在所有情况下都能很好地工作。

也就是说,我真的很想找到一个解决方案,它适用于所有场景中的服务

c# winapi

3
推荐指数
1
解决办法
6604
查看次数