我以为我理解了C#正则表达式,但很明显并非如此.我需要一些帮助来设计一个能够找到从START | BEGIN到))的所有内容的表达式.表达式可以是多行的.
防爆.
START( FTP_STATE, XXX(
VAL( FTP_INITIAL_STATE, 0 )
VAL( FTP_INBOUND, 1 )
AL( FTP_OUTBOUND, 2 )
))
/**************************************************************/
BEGIN( FTP_TIMER_MODE, YYY(
VAL( FTP_REMOVE_TIMER, 0 )
VAL( FTP_NOT_REMOVE_TIMER, 1 )
))
/**************************************************************/
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢
我正在用C++编写一个愚蠢的小应用程序来测试我的一个库.我希望应用程序向用户显示命令列表,允许用户键入命令,然后执行与该命令关联的操作.听起来很简单.在C#中,我最终会编写一个命令列表/映射,如下所示:
class MenuItem
{
public MenuItem(string cmd, string desc, Action action)
{
Command = cmd;
Description = desc;
Action = action;
}
public string Command { get; private set; }
public string Description { get; private set; }
public Action Action { get; private set; }
}
static void Main(string[] args)
{
var items = new List<MenuItem>();
items.Add(new MenuItem(
"add",
"Adds 1 and 2",
()=> Console.WriteLine(1+2)));
}
Run Code Online (Sandbox Code Playgroud)
有关如何在C++中实现此目的的任何建议?我真的不想为每个命令定义单独的类/函数.我可以使用Boost,但不能使用TR1.
我试图从List派生并有选择地打开和关闭IsReadOnly属性.我希望Add/Remove/[]函数能够使用这个属性,但它们不会.这样做的正确方法是什么?
我的派生类有一些额外的属性,所以我不能简单地将列表包装在ReadOnlyCollection中.
我正在尝试为我的用户提供两个类 - 一个是只读的,一个是可写的.r/o只有getter,而writable将从它继承并添加setter.
我的印象是C#应该能够处理它,但编译器不同意.为什么这不起作用?任何解决方法?
class A
{
protected int m_val;
public int Val
{
get { return m_val; }
}
}
class B : A
{
public int Val
{
set { m_val = value; }
}
}
class Test
{
static void Main(string[] args)
{
B b = new B();
b.Val++; // <-- WHY DOESN'T THIS WORK?!
}
}
Run Code Online (Sandbox Code Playgroud)
PS上面示例中的受保护变量是人为的.我的类实际上包装了一些本机资源,并且获取/设置发生在const或可变本机指针上.