问题列表 - 第31533页

轻松创建支持C#索引的属性

在C#中,我发现索引属性非常有用.例如:

var myObj = new MyClass();
myObj[42] = "hello"; 
Console.WriteLine(myObj[42]);
Run Code Online (Sandbox Code Playgroud)

但据我所知,没有语法糖支持自己支持索引的字段(如果我错了请纠正我).例如:

var myObj = new MyClass();
myObj.field[42] = "hello"; 
Console.WriteLine(myObj.field[42]);
Run Code Online (Sandbox Code Playgroud)

我需要这样做的原因是,我已经用我的分类的索引属性,但我 GetNumX(),GetX()SetX()功能如下:

public int NumTargetSlots {  
    get { return _Maker.NumRefs; }  
}
public ReferenceTarget GetTarget(int n) {
    return ReferenceTarget.Create(_Maker.GetReference(n));
}
public void SetTarget(int n, ReferenceTarget rt) {
    _Maker.ReplaceReference(n, rt._Target, true);
}
Run Code Online (Sandbox Code Playgroud)

你可能会看到将这些暴露为一个可索引的字段属性会更有意义.我可以编写一个自定义类来实现这一点,每次我想要语法糖,但所有的样板代码似乎都没有必要.

所以我编写了一个自定义类来封装样板,并且可以轻松创建可以编制索引的属性.这样我可以添加一个新属性,如下所示:

public IndexedProperty<ReferenceTarget> TargetArray  {
    get { 
       return new IndexedProperty<int, ReferenceTarget>(
           (int n) => GetTarget(n), 
           (int n, ReferenceTarget rt) => SetTarget(n, …
Run Code Online (Sandbox Code Playgroud)

c# properties indexed-properties

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

ModelAndView和ModelMap有什么区别?

是否ModelMap只是新的名称在春季3的ModelAndView

功能是否在Spring 3中发生了变化?

在Spring 3应用程序中使用以下代码考虑此代码ModelMap:

 @RequestMapping(value = "/order", method = RequestMethod.GET)
 public final String setup(final ModelMap model)
 {
  model.addAttribute(ORDER, new Order());
  return "setup";
 }
Run Code Online (Sandbox Code Playgroud)

我想知道ModelAndView一个较旧的Spring应用程序中的等效用途是什么?它是否只需要更改名称ModelMapModelAndView使其在Spring 2.5中运行?

java spring spring-mvc

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

在哪里可以找到针对Objective-C的NSArray解析器的CSV?

我正在寻找一种易于使用的Objective-C CSV解析器,可以在iPhone上使用.我在哪里可以找到一个?

我也在寻找其他解析器,比如JSON,所以也许在某个地方有一个转换库.

iphone parsing objective-c ios

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

如何遍历表单中的所有控件,包括子窗体中的控件 - Access 2007

正如我的问题标题所示,如何循环遍历表单中的所有控件,包括子表单.

例如,我使用下面的子例程来设置带有标记*的控件的背景颜色

Public Sub colCtrlReq(frm As Form)
'  Sets background color for required field -> Tag = *
Dim setColour As String
setColour = RGB(255, 244, 164)
Dim ctl As Control
For Each ctl In frm.Controls
        If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acListBox Then
            If InStr(1, ctl.Tag, "*") <> 0 Then
                ctl.BackColor = setColour
            End If
        End If
Next ctl
Set ctl = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)

如何改变它以捕获子表单中的控件?提前感谢任何帮助或指示.

干杯诺埃尔

ms-access ms-access-2007

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

Moq - 使用VerifySet检查调用的次数

我正在尝试使用带有Moq的VerifySet来检查调用协作对象上的setter的次数.但是当我输入调用的Times部分时,我得到一个错误,即赋值运算符在表达式树中无效.

mockTimer.VerifySet(timer => timer.Prop = value); //Works fine
mockTimer.VerifySet(timer => timer.Prop = value, Times.Once); //Compile Error
Run Code Online (Sandbox Code Playgroud)

c# moq

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

我在RegEx中缺少什么?

我正在尝试创建一个JavaScript Regex来测试:

有效#介于0和99.9之间(其中只允许一个十进制数字),例如3.45无效.

所以,空白是可以的,0到99之间的任何整数都可以,并且允许使用小数值.

到目前为止,我有这个,但它允许值3.45传递:

$^|$[0-9][0-9]?^|$[0-9][0-9]?.[0-9]^
Run Code Online (Sandbox Code Playgroud)

javascript regex numbers

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

会话到期后Cakephp重定向

我在一个网站上使用CakePHP,我想知道如何在会话过期时自动重定向?

php cakephp session-timeout

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

将String Collection绑定到ListView,Windows窗体

我有一个StringCollection,我希望One Way绑定到ListView.同样,ListView应该显示StringCollection的内容.我将以编程方式从集合中删除项目,这样他们就不需要通过ListView与它进行交互.

我有一个带有财产的表格,如此 - >

public DRIUploadForm()
    {
        InitializeComponent();

        lvwDRIClients.DataBindings.Add("Items", this.DirtyDRIClients, "DirtyDRIClients");
    }

private StringCollection _DirtyDRIClients;
public StringCollection DirtyDRIClients 
    { 
        get
        {
            return _DirtyDRIClients;
        }
        set
        {
            _DirtyDRIClients = Settings.Default.DRIUpdates;
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# data-binding collections winforms

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

Emacs:输入gedit中的命令

在gedit中,可以为更简单的输入定义所谓的"片段".

例如,有一个片段while.这意味着:如果您键入while ->(->代表Tab键).并且gedit会自动将其转换为以下内容(包括正确的缩进):

while (condition){

}
Run Code Online (Sandbox Code Playgroud)

在vim中(与latex-suite一起)我看到了以下内容:如果你键入(,vim只插入一个(.如果您(再次键入,vim会自动将其转换为\left( \right).

我发现abbrev-mode但是这种模式没有正确放置光标(即在括号之间或在while循环内).

我设法创建自定义的emacs键绑定/宏(不必按Tab键),所以我知道它是可能的.

但是,是否已经存在并且可以在没有太多努力的情况下定义这样的"片段"的包?还是有任何严重的理由不使用这些东西?

lisp emacs code-snippets

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

从查找程序打开时,$ PATH变量未在gvim/MacVim中正确设置

我正在使用MacVim(基本上是gvim用于mac).

如果我从命令行打开macvim,那么我的$PATH变量将被正确设置.

如果我通过点击打开macvim并使用finder点击,则该$PATH变量将无法正确设置.

谁能给我一些见解?

注意:我知道至少部分路径已设置~/.bashrc,但我不确定其余部分的设置方式.


例子:

如果我从终端打开macvim:

% gvim basic.tex 
Run Code Online (Sandbox Code Playgroud)

然后在MacVim我去:

:!echo $PATH
/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/Applications/MacVim.app/Contents/M
acOS:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/texbin:/usr/X11R6/bin 
Run Code Online (Sandbox Code Playgroud)

这是正确的道路.


当我用鼠标打开文件时(在finder中)

我去的时候:

:!echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin  
Run Code Online (Sandbox Code Playgroud)

它给了我一条小路.为什么?

macos vim command-line path macvim

17
推荐指数
3
解决办法
7070
查看次数