小编M. *_*ena的帖子

在C#中实现"百分之百机会"

我需要一些C#代码有机会的帮助.假设我有从1到100的循环,并且在该循环中我有一个"if"代码,我想要执行70%(随机).我怎么做到这一点?所以像这样:

static void Main(string[] args)
{
    var clickPercentage = 70;

    for (int i = 0; i < 100; i++)
    {
        if (chance)
        {
            //do 70% times
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,对于顶级示例,我希望如果代码被击中的可能性为70%,对于我的示例大约为70次.

我试过的事情:(远不及70%,更像是1%或2%的几率)

static void Main(string[] args)
{
    var clickPercentage = 70;

    for (int i = 0; i < 100; i++)
    {
        var a = GetRadnomNumber(1, clickPercentage);
        var b = GetRadnomNumber(1, 101);

        if (a <= b)
        {
            Console.WriteLine($"Iteracija {i} - {b} <= {a}");
        }
    }
}

public static int GetRadnomNumber(int min, int …
Run Code Online (Sandbox Code Playgroud)

c# asp.net random

11
推荐指数
2
解决办法
2361
查看次数

用于处理跳过迭代的控件的Foreach循环

创建文本框的代码......

private void btnAddIncrement_Click(object sender, EventArgs e)
{              
    SmartTextBox dynamictextbox = new SmartTextBox();

        dynamictextbox.BackColor = Color.Bisque;
        dynamictextbox.Width = this.tbWidth;
        dynamictextbox.Left = (sender as Button).Right + this.lastLeft;
    dynamictextbox.K = "Test";

    this.lastLeft = this.lastLeft + this.tbWidth;
    dynamictextbox.Top = btnAddStart.Top;
    this.Controls.Add(dynamictextbox);              
}
Run Code Online (Sandbox Code Playgroud)

用于删除所有文本框的代码.

foreach (Control c in this.Controls)
{

    if (c.GetType() == typeof(BnBCalculator.SmartTextBox))
    {
        count++;
        //MessageBox.Show((c as SmartTextBox).K.ToString());
        c.Dispose();
    }
   // else { MessageBox.Show("not txtbox"); }

}
Run Code Online (Sandbox Code Playgroud)

当我点击btnAddIncrement时,我按预期得到以下内容...... 在此输入图像描述

但是当我点击重置时,它会错过每一个文本框.见下文...

在此输入图像描述

不知道这里发生了什么,但无论我添加的文本框怎么样,这都是一样的.它总是错过每一个盒子.

c# winforms

6
推荐指数
1
解决办法
607
查看次数

在Azure Web App中进行gdi32.dll函数调用 - 是否支持?

gdi32.dll在发布Azure Web App之后,尝试对C#中的函数进行一些基本调用,而且我遇到了很多问题.是完全支持还是我可以进行变通/配置更改?

在标准设置的Visual Studio中运行时,下面的指针都返回非零值,但在Azure中运行时它们返回0.

创建了一个基本的ASP.NET Web Forms项目,并添加了Default.aspx对测试的代码隐藏的打击:

[DllImport("gdi32.dll")]
private static extern IntPtr CreatePen(int enPenStyle, int nWidth, uint crColor);

[DllImport("gdi32.dll")]
private static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);

[DllImport("gdi32.dll")]
private static extern bool MoveToEx(IntPtr hdc, int X, int Y, IntPtr lpPoint);

[DllImport("gdi32.dll")]
private static extern bool LineTo(IntPtr hdc, int nXEnd, int nYEnd);

[DllImport("gdi32.dll")]
private static extern bool DeleteObject([In] IntPtr hObject);


protected void Page_Load(object sender, EventArgs e)
{
    using (Bitmap bitmap = new Bitmap(100, 100))
    {
        using (Graphics …
Run Code Online (Sandbox Code Playgroud)

.net c# gdi azure azure-web-sites

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

检查字符串 null 或空并替换为另一个字符串

在这里,我想,如果 AvailCode 作为 anullempty字符串出现,那么我需要显示它“暂时不可用”。但我的编码没有显示该值。(仅考虑可用代码)。

var _staff = trv.GetBookDetails("4500").Select(b => new
{
    value = b.bookno,
    text =  b.bookname + " " + "/"+" " + b.AvailCode ?? "TemporaryUnavailable",  
});
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

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

如何在C#中显示一个用户控件并隐藏其余用户控件

我是C#的新手,我正在使用Windows窗体.

我有Form120 buttons和20 user controls.我想要做的是:

当我单击button1 user control1显示并显示其余user controls隐藏时,单击button2 user control2显示,其余user controls隐藏,单击button3 user control3显示,其余user controls隐藏,依此类推.我可以通过设置其余部分UserControl.visible = True来显示一个user control并隐藏其余部分,user controls visibility = False但我不想写太多代码.

因此,我使用下面的简单代码只显示一个user control相关button的时候点击并隐藏剩下的部分user controls,但是这个代码没有运行它运行没有错误但user controls仍然可见.

任何人都知道为什么这段代码没有显示one user control并隐藏其余部分?我也很乐意听到其他想法.谢谢

private void button1_Click(object sender, EventArgs e) 
{
    foreach (Control ctrl in this.Controls)
    {
        if (ctrl .GetType() == typeof(UserControl))
        { …
Run Code Online (Sandbox Code Playgroud)

c#

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

该进程无法访问该文件,因为该文件正在被另一个进程使用 c# asp.net

我只是尝试使用 c# 创建一个文件并在其中写入。这是我的代码:

public void AddLog (string message, string fn_name)
{
    string path = @"E:\" + fn_name +".txt";
    if (!File.Exists(path))
    {
        File.Create(path);
        File.Delete(path);
        TextWriter tw = new StreamWriter(path);
        tw.WriteLine("" + message +"");
        tw.Close();
    }
    else if (File.Exists(path))
    {
        TextWriter tw = new StreamWriter(path,true);
        tw.WriteLine("" + message + "");
        tw.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是它总是给我这个例外:

{“该进程无法访问文件“E:\CheckForFriends.txt”,因为它正在被另一个进程使用。”}

在这一行:File.Delete(path); 即使我删除了这一行,它也会在该行给出相同的异常消息:File.Create(path);

那么,有人知道我的代码有什么问题吗?

c# asp.net

2
推荐指数
1
解决办法
6905
查看次数

等待多个可选任务

您好我想知道是否有更简洁的方法来编写下面的异步代码.基本上我想等待所有任务,但其中一个任务是可选的.感觉不必要的复杂的,想如果我能做到这一点通过一些回调,但一直没能弄明白.

var mobile = true;

var task1 = _service.Async1();
var tasks = new List<Task>
{
    task1
};

Task<int> task2 = null;
if (!mobile)
{
    task2 = _service.Async2();
    tasks.Add(task2);
}

await Task.WhenAll(tasks);

var result1 = task1.Result;

if (!mobile)
{
    result2 = task2.Result;
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

.net c# asynchronous task

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

C# 通过 System.DirectoryServices.AccountManagement 访问 msExchRecipientTypeDetails 属性

我使用下面的代码片段System.DirectoryServices.AccountManagement在 ActiveDirectory 中搜索用户。

user.Name成功返回,但我怎么能检索其他属性从AD用户,喜欢msExchRecipientTypeDetails,因为它不是在VisualStudio中2015年的情报显示?

using (PrincipalContext adPrincipalContext = new PrincipalContext(ContextType.Domain, DOMAIN, USERNAME, PASSWORD))
{
    UserPrincipal userPrincipal = new UserPrincipal(adPrincipalContext);                
    userPrincipal.SamAccountName = "user-ID";   
    PrincipalSearcher search = new PrincipalSearcher(userPrincipal);

    foreach (var user in search.FindAll())
    {
        Console.WriteLine("hei " + user.Name);         
        // how to retrive other properties from AD like msExchRecipientTypeDetails??          
    }
}
Run Code Online (Sandbox Code Playgroud)

c# active-directory

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

简单的方法验证

我有这个方法,我验证和ID,我遇到了问题.ID必须遵循这些规则才有效:

  • 完全有6个字符
  • 必须以A,E或P开头

这是代码:

public static String getCartId(String cartId) {
    Boolean correctId = false;

    while (!correctId) {
        cartId = JOptionPane.showInputDialog("Type the Cart ID:");
        cartId = cartId.trim();
        cartId = cartId.toUpperCase();
        char c = cartId.charAt(0);

        // VALIDATION
        if (cartId.length() != 6)
            JOptionPane.showMessageDialog(null, "Cart ID must have only 6 chars, type it again.");
        else if (c != 'A' || c != 'E' || c != 'P')
            JOptionPane.showMessageDialog(null, "Invalid Cart ID, type it again.");
        else
            correctId = true;
    }
    return cartId;
}
Run Code Online (Sandbox Code Playgroud)

如果我输入,比方说,aaaaaa …

java

0
推荐指数
1
解决办法
65
查看次数