小编Lee*_* Yi的帖子

C#使文本框中的一组字符表现得像一个字符

基本上,我有喜欢的关键词sin(cos(一个文本框,我想有更像一个单个字符.

当我提到下面的整个字符串时,它指的是字符组(例如" sin(")

sin(身份为例:

如果插入符号处于此位置(后面s):

在此输入图像描述

如果按下del,则会删除整个字符串.如果按下右箭头键,插入符将跳转到(.

如果插入符号处于此位置(之后():

在此输入图像描述

如果backspace按下,则将删除整个字符串.如果按下左箭头键,插入符将跳到后面s.

编辑: 感谢John Skeet指出这一点.

选择字符组的任何子字符串(例如sifrom sin()应该选择整个字符串.

对不起,如果难以理解,我想到的是有点难以言辞.

编辑2:感谢Darksheao为我提供了退格键和删除键的答案.我将该delete段重新定位到PreviewKeyDown事件,因为它不能与KeyPress事件一起使用.

编辑3:使用charCombinations做事方式,这是我如何执行左右键的实现:

#region Right
case Keys.Right:
{
    s = txt.Substring(caretLocation);
    foreach (string combo in charCombinations)
    {
       if (s.StartsWith(combo))
       {
            textBox1.SelectionStart = caretLocation + combo.Length - 1;
            break;
        }
    }
    break;
}
#endregion
#region Left
case Keys.Left:
    {
        s …
Run Code Online (Sandbox Code Playgroud)

c# string textbox

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

Lua 字符串追加

所以我创建了一个所有字符串都可以使用的函数,它被称为append。

local strmt = getmetatable("")
function strmt.__index.append(self, str)
  self = self..str
  return self
end
Run Code Online (Sandbox Code Playgroud)

然后该函数的使用方式如下:

self = self:append("stuff")
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个函数来执行此操作:

local stuff = "hi "
stuff:append("bye")
print(stuff)
Run Code Online (Sandbox Code Playgroud)

并生产

hi bye
Run Code Online (Sandbox Code Playgroud)

lua function metatable

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

Lua如何创建可用于变量跟进的自定义函数

继续我之前的问题(链接在这里:Lua如何创建可用于变量的自定义函数?),有没有办法创建相同类型的函数,除了表之外的其他东西?例如,

str = "stuff"
letter = str:foo() --Maybe have the foo function extract the first letter?
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个以相同的方式工作的函数

lowerCasestr = str:lower()
Run Code Online (Sandbox Code Playgroud)

作品?

lua function

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

C#找不到char结构的扩展方法

基本上,我写了这个扩展方法:

public static class Extensions 
{
    public static bool IsMaths(this Char it)
    {
        if (char.IsDigit(it) || char.IsControl(it)) { return true; }
        foreach (char each in new char[] { '-', '+', '(', ')', '/', '*', '%', '^', '.' })
        {
            if (each.Equals(it)) { return true; }
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我试着打电话时:

else if (!Char.IsMaths(e.KeyChar)) { e.Handled = true; }
Run Code Online (Sandbox Code Playgroud)

Visual Studio给出了错误'char' does not contain a definition for 'IsMaths'.为什么会这样?

c# extension-methods

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

改变函数返回类型 C++

那么,随着 C++14 中新的auto返回类型推导,有没有办法创建具有不同返回类型的函数呢?

例如:

auto replaceStr(string base, string search, string replace) {
  size_t found = base.find(search);
  if (found == string::npos) {
    return false; //Return this is replace is not found
  }
  else {
    base.replace(found, (found+search.length()), replace);
    return base; //Return this after the replacement
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道这行不通。那么有没有办法让它发挥作用呢?

编辑:评论中的大多数人都告诉我这是不可能的,因为编译器不知道函数在编译时的返回类型。那么也许我们可以让函数具有默认返回类型和可选返回类型?

c++ c++14

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

在程序C++中迷路'\ 253'和'\ 307'

我编写了一串代码来检查给定的数字n是否为素数,并相应地返回true或false.

#include <iostream>

using namespace std;

bool primeChecker(int n) {
  int ul = n;
  int x;

  for (int f = 2; f < n; f++) {
    if (f >= ul) {
      break;
    }
    x = n % f;
    if (x == 0) {
      cout « n « " is not prime." « endl;
      return false;
    }
    else {
      ul = n/f+1;
    }
  }
  cout « n « " is prime." « endl;
  return true;
}

int main()
{ …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

C++测试是否存在map元素

我有一个字符串的"数组"定义如下:

typedef map<int, string> strArr;
Run Code Online (Sandbox Code Playgroud)

每当我这样做:

strArr args;
if(!args[1]) { /*do stuff*/ }
Run Code Online (Sandbox Code Playgroud)

编译器告诉我,no match for 'operator!'为什么会这样,我该如何解决这个问题呢?

编辑: 有没有办法使这项工作bool operator! ()!

c++

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

标签 统计

c++ ×3

c# ×2

function ×2

lua ×2

c++11 ×1

c++14 ×1

extension-methods ×1

metatable ×1

string ×1

textbox ×1