小编Sim*_*ods的帖子

Reactjs - 正确设置内联样式

我正在尝试将Reactjs与kendo分离器一起使用.分割器有一个样式属性

style="height: 100%"
Run Code Online (Sandbox Code Playgroud)

使用Reactjs,如果我理解正确,可以使用内联样式实现

var style = {
  height: 100
}
Run Code Online (Sandbox Code Playgroud)

但是,我也在使用Dustin Getz jsxutil来尝试将事情分成更多部分并拥有独立的html片段.到目前为止,我有以下html片段(splitter.html)

<div id="splitter" className="k-content">
  <div id="vertical">
    <div>
      <p>Outer splitter : top pane (resizable and collapsible)</p>
    </div>
    <div id="middlePane">
      {height}
      <div id="horizontal" style={height}>
        <div>
          <p>Inner splitter :: left pane</p>
        </div>
        <div>
          <p>Inner splitter :: center pane</p>
        </div>
        <div>
          <p>Inner splitter :: right pane</p>
        </div>
      </div>
    </div>
  <div>
  <p>Outer splitter : bottom pane (non-resizable, non-collapsible)</p>
</div>
Run Code Online (Sandbox Code Playgroud)

和一个splitter.js组件,它引用这个html如下

define(['react', 'external/react/js/jsxutil','text!internal/html/splitter.html'],
  function(React, jsxutil, splitterHtml) {
    'use strict';
    console.log('in app:' + …
Run Code Online (Sandbox Code Playgroud)

html javascript reactjs

52
推荐指数
3
解决办法
9万
查看次数

函数编程和模拟对象

我最近正在观看关于Clojure的网络直播.在演讲者中,主持人在讨论Clojure的FP性质的背景下发表评论,这类似于(我希望我不会歪曲他)"模拟对象嘲笑你".

当我在微软的Reactive Framework开始出现时观看网络直播时,我也听到了类似的评论.它类似于"模拟对象适合那些不懂数学的人"

现在我知道这两个评论都是笑话/诙谐等等(并且可能很难解释),但是它们的基础显然是一些我不理解的概念,因为我还没有真正转向FP范式.

所以,如果有人能够解释FP是否真的让嘲弄变得冗余,我将不胜感激,如果有的话.

functional-programming mocking

13
推荐指数
2
解决办法
2019
查看次数

异常或C#中的monad

我在尝试着 神交 初步了解monads.

我有一个数据层调用,其结果我想单独返回,例如没有行更新/数据集等,或异常.我想我需要使用Exception monad,我可以看作是Either monad的特例

我已经看了几个样本 - 可能样本吨,我不太确定如何或如果将其概括为成为一个Either monad - 但我找不到任何不在haskell中 - 并且,不幸的是,我肯定不会grok haskell!

我想知道是否有人能指出我的任何样品.

c# monads

12
推荐指数
3
解决办法
9669
查看次数

Linq - 前瞻迭代

我使用访问者类型模式通过集合进行迭代,并且需要访问列表中的当前和下一个项目.目前我正在通过像这样的扩展方法来做这件事

public void Visit<TItem>(this IEnumerable<TItem> theList, Action<TItem, TItem> visitor)
{
    for (i = 0; i <= theList.Count - 1; i++) {
        if (i == theList.Count - 1) {
            visitor(theList(i), null);
        } else {
            visitor(theList(i), theList(i + 1));
        }    
    }    
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有其他/更好/更优雅的方法来实现这一目标?目前我认为我只需要访问列表中的当前和下一个项目,但我想知道我是否可能遇到需要预测下一个'n'项目的情况.

c# linq iteration

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

F#工作流程/开发流程

(我使用"工作流程"这个词 - 不是在异步工作流程的意义上 - 而是在"git工作流程"意义上,也就是说,如何将其用作开发的一部分)

玩了一段时间的F#,我开始开发我的第一个F#应用程序.我来自c#/ vb.观看了各种演示/演讲 - 无论是对还是错 - 我开始使用fsi作为主要的开发"引擎"并在该领域内开展工作.如果我遇到了需要调试的问题,我倾向于将有问题的功能分解成更小的位并检查那些工作以尝试调试问题.

但是,为了在fsi中保持代码量可管理,一旦我对我所做的事情感到满意,我就把它转移到.fs并将#fs重新加载到fsi中.随着应用程序变得越来越大,这可能会开始变得有点笨拙,因为当我需要重构时,我最终不得不从fs文件中恢复内容更改它运行的东西以使某些东西再次运行,然后再将代码推回去进入.fs文件.此外,这种风格并不是真正的测试第一种方法,因此我没有获得构建一组测试的好处.(我也可以错过设置断点/步进代码的能力,在某些情况下,例如递归,可以更快地诊断错误而不是破坏函数的某些部分 - 虽然这可能在VS11中可用而且我没有设置正确)..所以我认为我可能没有以最佳方式做事,或者没有以正确的方式思考问题.

我想知道其他人是否可以提供他们开发应用程序的方式.你主要使用fsi还是从tdd开始?应该将tdd方法作为主要的开发工具,并且FSI更有选择性地用于帮助实施更复杂的算法,数据探索等等

我已经看过这个问题,显然它有助于指出F#的各种tdd框架,但我仍然有兴趣找出经验丰富的F#开发人员的工作流程.

很多thx

小号

tdd f#

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

在C#中访问VB6字符串的最快方法

我正在使用COM Interop.我在VB6中调用了一个大约13000个字符串的字符串.如果我在纯VB6中执行调用,则执行大约需要800ms.如果我通过c#和COM Interop执行它大约需要8秒钟.我假设延迟是由编组引起的.

如果我对编组是正确的,如果有人能以最快的方式建议我进入C#,我将不胜感激.例如,a)将其作为字节数组公开b)将一个byref字符串参数提供给VB6层会更好吗?

我也很感激一些示例代码.我试过了

Marshal.PtrToStringAuto(Marshal.ReadIntPtr(myCOMObject.GetString, 0)
Run Code Online (Sandbox Code Playgroud)

无济于事.

-

继弗朗西的评论之后.我只是简单地从C#dll引用VB6 dll(正在处理中).这是OLEView的摘录

interface _MyCOMObect : IDispatch {
        ...
        [id(0x60030006)]
        HRESULT GetString(
                        [in] _IEventHistory* p_oEventHistory, 
                        [out, retval] _IXML** );
        ...
    };

    [
      uuid(09A06762-5322-4DC1-90DD-321D4EFC9C3E),
      version(1.0),
        custom({17093CC6-9BD2-11CF-AA4F-304BF89C0001}, "0")
    ]
    coclass MyCOMObject {
        [default] interface _CFactory;
    };

    [
      odl,
      uuid(C6E7413F-C63A-43E4-8B67-6AEAD132F5E5),
      version(1.0),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
Run Code Online (Sandbox Code Playgroud)

我应该指出参数(p_oEventHistory)是我在C#中实例化的另一个COM对象,但需要大约80ms

小号

c# string vb6 com-interop marshalling

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

GEdit/Python执行插件?

我刚开始用GEdit和各种插件学习python作为我的IDE.

Visual Studio/F#有一个功能,允许在代码窗口中的一段文本上突出显示,然后在按键上,在F#控制台中执行.

是否有类似的工具/插件可以为GEdit/Python启用这种行为?我确实有各种执行类型插件(在Python中运行,更好的Python控制台),但他们没有给我这种特殊的行为 - 或者至少我不知道如何配置它们给我这个.我发现它很有用,因为在学习python时,我有一些测试代码,我想执行特定的单独行或小段代码(而不是一个完整的文件)来尝试理解他们在做什么(并且复制/粘贴可以得到一个有点烦人)

...或者也许有更好的方法来进行代码探索?

很多thx

西蒙

python plugins gedit

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

Interface方法上的CreateDelegate

我正在努力查看我出错的地方,创建一个接口方法的委托

我的代码如下:

private static Func<HtmlDocument, IObservable<IData>> FindScrapeMethod(ICrawlerStrategy crawler, string scrapeDelegate)
{
    Func<HtmlDocument, IObservable<IData>> action;
    var fullDelegateName = String.Format("ICrawlerStrategy.{0}", scrapeDelegate);

    if (!_delegateCache.TryGetValue(fullDelegateName, out action))
    {                
        var method = typeof(ICrawlerStrategy).GetMethod(scrapeDelegate, BindingFlags.Public | BindingFlags.Instance );

        action = (Func<HtmlDocument, IObservable<IData>>)
                    Delegate.CreateDelegate(typeof(Func<HtmlDocument, IObservable<IData>>), crawler, method);
        _delegateCache.Add(fullDelegateName, action);               
    }

    return action;
}
Run Code Online (Sandbox Code Playgroud)

接口声明是

public interface ICrawlerStrategy 
{        
    Func<HtmlDocument, IObservable<IData>> ExtractorAsync();
}
Run Code Online (Sandbox Code Playgroud)

实施类如下

public class MyCrawler : ICrawlerStrategy
{

    <snip>

    Func<HtmlDocument, IObservable<IData>> ICrawlerStrategy.ExtractorAsync()
    {
        return (doc) => AsyncScraper(doc); 
    }
}
Run Code Online (Sandbox Code Playgroud)

Edit1 - 根据@Yahia的要求:

public IObservable<IData> AsyncScraper(HtmlDocument page) …
Run Code Online (Sandbox Code Playgroud)

c# delegates

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

加载具有固定数据模式的数组

我有一个分隔的数据字符串,例如

a~b~c~d~e~f~g~h~i~j~k~l~... 
dog~cat~fish~parrot~mother~father~child~grandparent~...
hello~hi~greetings~yo
Run Code Online (Sandbox Code Playgroud)

我想将数据加载到数组/ seq类型的记录中

type myType {
    first: string;
    second: string;
    third: string;
    fourth:string;
}
Run Code Online (Sandbox Code Playgroud)

所以我最终得到了数组/ seq中的3个对象.我一直在乱用for循环来做这件事,但感觉非常迫切.如何使用功能成语来实现这一目标?

编辑:我应该澄清的是,分隔的数据可能是可变长度的,尽管分隔的项目数应始终是4所以倍数,每次迭代中,我期待窄条4个输入数据的其加载到输入类型,一旦消耗完所有数据,返回一个Array/seq.

编辑2:所以我最终得到了这样的东西

let createValues(data: string) =               
    let splitValues(valueString) = 
        let rec splitData acc = function
            | a :: b :: c :: d :: xs -> splitData ({ first=a; second=b; third=c; fourth=d } :: acc) xs
            | [] -> acc
            | _ -> failwith "uneven data"
        splitData [] valueString
    splitValues (data.Split [|'~'|] |> Array.toList)
Run Code Online (Sandbox Code Playgroud)

谢谢

arrays f#

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

简化CTE字符串连接?

我有以下代码清单

Code Meaning 
1    Single 
2    Married/Separate 
3    Divorced 
4    Widowed 
8    Not Applicable 
99   Not known
Run Code Online (Sandbox Code Playgroud)

我试图使用CTE将这些展平为一行.我有一个CTE解决方案,它使用RowNumber函数来执行此操作.

WITH Flattened (JoinItem, CodeMeaning) AS
(
    SELECT 1 AS JoinItem, CAST('' AS VARCHAR(255))
    UNION ALL
    SELECT f.JoinItem+1, CAST(f.CodeMeaning + ',' + c.CodeMeaning AS VARCHAR(255))
    FROM
    (
        SELECT JoinItem = ROW_NUMBER() OVER (ORDER BY Code),c.Code + ' - ' + c.Meaning AS CodeMeaning
        FROM Codes c
    ) c
    INNER JOIN Flattened f
    ON f.JoinItem=c.JoinItem
)
SELECT TOP 1 JoinItem,  CodeMeaning 
FROM Flattened 
ORDER …
Run Code Online (Sandbox Code Playgroud)

sql common-table-expression sql-server-2008-r2

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

使用Linq对字符串进行分组,排序和连接

假设我有以下数据

Key    ID      Data
A      1       Hello
A      2       World
B      2       Bar
B      1       Foo
Run Code Online (Sandbox Code Playgroud)

我期待产生结果

A     HelloWorld
B     FooBar
Run Code Online (Sandbox Code Playgroud)

我正在努力使语法正确 - 我试图使用Aggregate,但我不确定我是否可以(或应该)使用SelectMany

我会感激任何帮助.

    Dim data = result.Rows.
                    GroupBy(Function(r) r.Key).
                    Select(Function(g) g.OrderBy(Function(s) s.ID)).
                    Aggregate(New StringBuilder, Function(cur, nxt)                   
                              cur.Append(nxt.First.Data))
Run Code Online (Sandbox Code Playgroud)

谢谢

西蒙

linq vb.net

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