小编use*_*843的帖子

处理键盘事件时如何将e.KeyChar转换为实际字符值?

我想要做的就是获得在为事件输入密钥时按下的实际字符.

我所看到的唯一选择是e.KeyChar哪个会给我位置而不是角色本身.

我想要做的是将按键的值限制在0-9之间的数字.我现在这样做的方式就是if((e.KeyChar < 48 || (e.KeyChar > 57)))

仅仅输入0和9的值似乎有点便宜,我很想知道如何获得字符值本身而不是键.

编辑:感谢您的投入; 所以一般来说,没有办法从e.KeyChar值到输入本身的值.

我真的想接受我的事件,e,并且直接访问该字符,而不是使用e.KeyChar来获取该值的数字表示.

.net c# keypress keyboard-events winforms

5
推荐指数
2
解决办法
2万
查看次数

使用.ToArray()将字符串列表转换为数组

使用该.ToArray()函数时,是否需要隐式定义数组的大小,以便保存您要转换的列表中的字符?

String [] array = List.ToArray();
Run Code Online (Sandbox Code Playgroud)

我尝试这样做是因为我需要使用.GetValue()数组的能力,但是,数组保持大小为1而不保留列表中的材料.我试图使用.ToArray()不正确吗?

colAndDelimiter = new List<string>();
colAndDelimiter.Add(text);

String [] cd = colAndDelimiter.ToArray();
Run Code Online (Sandbox Code Playgroud)

这是我对阵列产生影响的所有代码.当我Console.WriteLine()在列表中它给了我整个文本.我可能会对列表如何工作感到困惑.它是否将所有内容存储为单个项目,这就是为什么数组只显示一个位置?

c# iqueryable.toarray toarray

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

使用非字符串返回类型进行日期检查 - 设计

public static bool CheckExpired()
{
    DateTime expiryDate, currentDate = DateTime.Today;
    DateTime.TryParse(date, out expiryDate);

    if (expiryDate > currentDate)
    {
        return true;
    }
    else { return false; }
}
Run Code Online (Sandbox Code Playgroud)

这就是我现在拥有的.但是,如果日期格式不正确,我希望有第三个选项.就像现在一样,它直接跳转到else并返回false.

问题是我想要三个可能的结果:

true - >尚未过期

false - >已过期

第三 - >输入无效日期

我只是坚持我如何到达那里.我知道我可以很容易地使用String返回类型,但有什么方法吗?

c#

0
推荐指数
3
解决办法
68
查看次数

C#优先级队列,泛型类型<T>转换

public class PriorityQueue<T> : IPriorityQueue<T> 
                            where T : IComparable
Run Code Online (Sandbox Code Playgroud)

所以,我已经使用上面的Header创建了一个优先级队列类,我试图将它与另一个类一起使用.

        private static PriorityQueue<Order> PQ;
Run Code Online (Sandbox Code Playgroud)

看起来这应该完全正常,但我收到了这个错误.

namespace.Order不能T在泛型方法中用作类型参数namespace.PriorityQueue<T>.有没有隐式转换从namespace.OrderSystem.IComparable

我无法辨别出这是告诉我要做什么的.这是否意味着我的IComparable实现不足以达到此目的,还是我正在使用某种错误的语法?

c# generics queue priority-queue

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