小编Seb*_*ann的帖子

Visual Studio 2013中的C#方法重载解析问题

在Rx.NET库中提供这三种方法

public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, CancellationToken, Task> subscribeAsync) {...}
public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, CancellationToken, Task<IDisposable>> subscribeAsync) {...}
public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, CancellationToken, Task<Action>> subscribeAsync) {...}
Run Code Online (Sandbox Code Playgroud)

我在MSVS 2013中编写以下示例代码:

var sequence =
  Observable.Create<int>( async ( observer, token ) =>
                          {
                            while ( true )
                            {
                              token.ThrowIfCancellationRequested();
                              await Task.Delay( 100, token );
                              observer.OnNext( 0 );
                            }
                          } );
Run Code Online (Sandbox Code Playgroud)

由于模糊的重载,这不会编译.编译器的确切输出是:

Error    1    The call is ambiguous between the following methods or properties: 
'System.Reactive.Linq.Observable.Create<int>(System.Func<System.IObserver<int>,System.Threading.CancellationToken,System.Threading.Tasks.Task<System.Action>>)' 
and 
'System.Reactive.Linq.Observable.Create<int>(System.Func<System.IObserver<int>,System.Threading.CancellationToken,System.Threading.Tasks.Task>)'
Run Code Online (Sandbox Code Playgroud)

但是只要我while( true )while( false …

c# rx.net

31
推荐指数
2
解决办法
1284
查看次数

这块JS代码是什么意思?

可能的重复:
将整个 Javascript 文件包装在像“(function(){ ... })()”这样的匿名函数中的目的是什么?

我遇到了一个 JS 文件,可以总结为下面的代码:

   (function(window){
              // some codes here
                    })(window);
Run Code Online (Sandbox Code Playgroud)

我想知道这段代码是什么意思?窗口有什么特殊含义,还是只是一个参数?我们在括号中看到的两个“窗口”有什么区别?

由于这个函数没有名字,我假设它是一个匿名函数,那么它是否只被调用一次?什么时候调用?

javascript

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

为什么在我的类中实现接口时,我的类方法不可见?

我看不到MyLoad.TreeLoader(),但为什么?我已经实现iloaderTreeViewLoad.我应该能够看到TreeLoader().

namespace Rekursive
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //treeView1.Nodes.Add("Test");
            iloader MyLoad = new TreeViewLoad();
            MyLoad.loader("test", treeView1, 1);
        }
    }

    interface iloader
    {
        void loader(string nodeName, TreeView myTre, int id);
    }

    class TreeViewLoad : iloader
    {
       public void TreeLoader(TreeView tre)
        {
           // Here I want to call the loader
        }

        public void loader(string nodeName, TreeView myTre, int id) …
Run Code Online (Sandbox Code Playgroud)

.net c# oop visual-studio-2008 visual-studio

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

C# 将 System.Data.EnumerableRowCollection&lt;System.Data.DataRow&gt; 转换为 DataTable

我有一个使用 Linq 过滤的数据表:

result = myDataTable.AsEnumerable().Where(row => row.Field<string>("id").Contains(values));
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用CopyToDataTable类似的方法

result.CopyToDataTable()
Run Code Online (Sandbox Code Playgroud)

result.CopyToDataTable<DataRow>()
Run Code Online (Sandbox Code Playgroud)

但他们没有工作。如何转换result为新的数据表?我搜索了许多 Stack Overflow 问题和许多其他教程,但找不到我想要的。

更新

我已将 HashSet 连接到逗号分隔值,我想我应该使用 String 数组还是 HashSet?

c# ienumerable

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

如何延长'T?

我正在尝试编写扩展名'T,基本上是C#中的以下内容:

public static T With<T>(this T pObject, Action<T> pAction)
{
    pAction(pObject);
    return pObject;
}
Run Code Online (Sandbox Code Playgroud)

我试着把它翻译成F#:

[<Extension>]
type Ext =
    [<Extension>]
    static member With<'T>(pObject: 'T, pAction: Action<'T>): 'T =
        pAction.Invoke(pObject);
        pObject;
Run Code Online (Sandbox Code Playgroud)

module Extensions =
    type 'T with
        member this.With(pAction: Action<'T>): 'T = Ext.With(this, pAction);
Run Code Online (Sandbox Code Playgroud)

但是这会产生错误"Unexpected keyword",其中包含'in type name.在最后一个片段中.

搜索返回了这个,但它显然只适用于数组类型:如何在F#中为T []定义类型扩展?

如何扩展泛型类型'T,还是有任何解决方法?

generics f#

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