问题列表 - 第13074页

提供异步编程模型:我应该吗?如果是这样,它应该是VerbAsync()还是BeginVerb()?

在c#中提供Method的同步和异步版本会询问如何提供方法的异步版本.

其中一个答案表明,类库开发人员应尽可能避免在单一责任原则的基础上提供异步方法.

  1. 这是真的?
    我不应该提供异步版本的方法吗?

  2. 如果答案为(换句话说,DO提供方法的异步版本),那么我应该遵循这篇MSDN文章中的建议,该文章指出:

IAsyncResult设计模式允许各种编程模型,但学习起来更复杂,并提供大多数应用程序不需要的灵活性.在可能的情况下,类库设计者应该使用事件驱动模型实现异步方法.在某些情况下,库设计者还应该实现基于IAsyncResult的模型.

??

"事件驱动模型"是指如果方法的同步版本是Verb(),则该方法的异步版本是Verb Async(),并且存在Verb Completed事件.
IAsyncResult模式是众所周知的Begin Verb()和End Verb()方法.

.net asynchronous class-design

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

在不访问表的情况下返回数据

情况(忽略它很无聊):我有使用报告服务创建的报告.其中一些报告采用参数"月".他们输入他们想要的月份的整数.示例:December = 12.为了查看报告,我只是在visual studio中使用Report Viewer.我需要将月份字段作为下拉框,以便按名称选择月份.报告服务中有一个功能,允许您将字段绑定到存储过程,以便为下拉列表创建值/文本对.

问题:我不想在我的数据库中创建一个"月"表,但我需要一个可以返回所有月/ int对的存储过程.我确信有一个非常简单的解决方案,但我不确定它是什么!我的第一个想法是创建一个临时表,但我不知道如何添加手动添加每个月/ int对表...所有的建议表示赞赏!

我想要的是以下声明,除了不使用月表:

SELECT MonthID, MonthName
FROM Months
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server reporting-services

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

GET与POST ajax请求:何时以及如何使用?

在创建ajax请求时,GET优于POST的优势是什么,反之亦然?我怎么知道在任何时候我应该使用哪个?这是一个有安全意识的决定吗?

另外,实际发送方式有何不同?

ajax post get

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

在Erlang Digraphs中的状态

Erlang有向图模块通过改变状态让我感到惊讶.

在Erlang中处理其他数据结构模块时,例如sets模块,传入的数据结构的实例是未修改的.该函数返回一个新的,更改的版本,例如

>S = sets:new().
>sets:size(S).
0
>T = sets:add_element(S, "element").
>sets:size(S).
0
>sets:size(T).
1
Run Code Online (Sandbox Code Playgroud)

这不是处理有向图模块时的行为.

>G = digraph:new().
>digraph:no_vertices(G).
0
>digraph:add_vertex(G, "vertex").
>digraph:no_vertices(G).
1
Run Code Online (Sandbox Code Playgroud)

首先,为什么有向图库在这方面有所不同?

其次,更重要的是,digraph模块如何针对现有绑定添加新状态?

我假设状态存储在另一个进程中,digraph模块使用现有的和未改变的绑定G进行识别.是这种情况吗?或者是否有其他方法可以修改与绑定相关联的状态?

erlang directed-graph

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

PHP Mysql自动报价?

在mysql数据库中插入行时,字符串值需要用引号括起来,其中整数不需要.

是否有任何类或库自动处理这个问题,以便我可以向第三方函数传递一个字段名和值数组,而不必担心将字符串值放在引号中?

谢谢,

php mysql string quotes

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

sender._postBackSettings.panelID在非IE浏览器中返回null?

我在一页中有2个更新面板。请求后,我想检查哪个更新面板已更新。我读过sender._postBackSettings.panelID应该对这个有好处:)

但是,每当我在非IE浏览器中收到回发信息时,panelID只会返回null吗?在IE中效果很好...

这是一个代码片段:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
   function(sender, args) {
   var postBackControls = sender._postBackSettings.panelID.split("|");
   ........
});
Run Code Online (Sandbox Code Playgroud)

我有2个updatepanels,都具有条件​​updatemode:

<asp:UpdatePanel ID="updScheduleTemplate" runat="server" 
   UpdateMode="Conditional">
   <ContentTemplate>
   .........
Run Code Online (Sandbox Code Playgroud)

<asp:UpdatePanel ID="updSpecialDays" runat="server" 
   OnLoad="updSpecialDays_OnLoad" UpdateMode="Conditional">
   <ContentTemplate>
   ..........
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,我愿意接受不涉及的替代解决方案 sender._postBackSettings.panelID

提前致谢 :)

javascript asp.net updatepanel

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

人们在持久的.NET字典中想要什么?

我正在基于ESENT数据库引擎(使用ManagedEsent互操作层)实现通用的,持久的.NET集合.到目前为止,我一直专注于完全模仿他们的System.Collections.Generic对应的类,除了他们在构造函数中采用指示数据库应该去的位置的路径.像这样的代码工作:

using Microsoft.Isam.Esent.Collections.Generic;

static void Main(string[] args)
{
    var dictionary = new PersistentDictionary<string, string>("Names");
    Console.WriteLine("What is your first name?");
    string firstName = Console.ReadLine();
    if (dictionary.ContainsKey(firstName))
    {
        Console.WriteLine("Welcome back {0} {1}", firstName, dictionary[firstName]);
    }
    else
    {
        Console.WriteLine("I don't know you, {0}. What is your last name?", firstName);
        dictionary[firstName] = Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 除了与Stack,Queue和Dictionary的兼容性之外,人们在持久化集合中需要/需要哪些功能?
  • 我是否需要.NET框架的2.0版或3.5版?
  • 键和值类型都限于基本的.NET类型(bool,byte,[all allgers],float,double,Guid,DateTime和string).我可能会添加对可序列化结构的值的支持.这种类型的限制是否太痛苦了?
  • 人们希望看到什么样的性能基准?
  • 人们想要使用PersistedDictionary的应用程序是什么类型的?

我将在下周准备第一个版本,但我想确保我正在构建正确的东西.

.net c# database persistence dictionary

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

如何在Python中制作重复生成器

你如何在Python中创建像xrange这样的重复生成器?例如,如果我这样做:

>>> m = xrange(5)
>>> print list(m)
>>> print list(m)
Run Code Online (Sandbox Code Playgroud)

我两次得到相同的结果 - 数字0..4.但是,如果我尝试使用yield:

>>> def myxrange(n):
...   i = 0
...   while i < n:
...     yield i
...     i += 1
>>> m = myxrange(5)
>>> print list(m)
>>> print list(m)
Run Code Online (Sandbox Code Playgroud)

我第二次尝试迭代m,我什么都没回来 - 一个空列表.

有没有一种简单的方法可以创建像xrange那样的带有yield或生成器理解的重复生成器?我找到了Python跟踪器问题的解决方法,该问题使用装饰器将生成器转换为迭代器.每次开始使用它时都会重新启动,即使您上次没有使用所有值,就像xrange一样.我也提出了我自己的装饰器,基于相同的想法,实际上返回一个生成器,但一个可以在抛出StopIteration异常后重新启动:

@decorator.decorator
def eternal(genfunc, *args, **kwargs):
  class _iterable:
    iter = None
    def __iter__(self): return self
    def next(self, *nargs, **nkwargs):
      self.iter = self.iter or genfunc(*args, **kwargs):
      try:
        return self.iter.next(*nargs, **nkwargs)
      except StopIteration:
        self.iter …
Run Code Online (Sandbox Code Playgroud)

python

20
推荐指数
2
解决办法
9960
查看次数

Javascript - 替换字符串文字中的转义字符

我试图替换Javascript字符串文字中的反斜杠(转义)字符.

我需要用双反斜杠替换它,以便我可以进行重定向:

var newpath = 'file:///C:\funstuff\buildtools\viewer.html'.replace(/\\/g,"\\");
window.location = newpath;
Run Code Online (Sandbox Code Playgroud)

但是,它似乎没有结果.

在Javascript处理之前,我无法正确转义反斜杠.

如何用(\\)替换(\)以便Javascript会很开心?

谢谢,德里克

javascript string replace escaping literals

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

(+)在Oracle SQL中做了什么?

我正在使用Oracle SQL Developer来查询Oracle数据库(不确定它是哪个版本),我将使用我为SQL生成的SQL报告.以前开发人员编写的许多报告都没有使用JOIN关键字来建立连接(因此我不太熟悉JOIN关键字).

他们创建的许多连接都是在WHERE语句中创建的.我会注意到这样的事情.

Select * From TableA, TableB WHERE TableA.PrimaryKey(+) = TableB.ForeignKey
Run Code Online (Sandbox Code Playgroud)

我的问题是关于(+).它的用途是什么,我如何在我的代码中使用它?

sql oracle join

5
推荐指数
2
解决办法
3646
查看次数