小编ric*_*ard的帖子

什么是.NET公共语言运行时的泛型实现

当你在C#(或一般的.NET)中使用泛型集合时,编译器基本上是否只需要为特定类型制作泛型集合的腿部工作开发人员.所以基本上...它只是节省了我们的工作?

现在我想到了,这不可能是正确的.因为没有泛型,我们以前必须在内部创建使用非泛型数组的集合,因此有装箱和拆箱(如果它是值类型的集合)等.

那么,如何在CIL中呈现泛型?当我们说我们想要一些通用的东西时,我们在做什么呢?我不一定想要CIL代码示例(虽然这样可以),我想知道编译器如何获取我们的泛型集合并呈现它们的概念.

谢谢!

PS我知道我可以用ildasm来看看这个,但我对CIL看起来仍然像中文,我还没准备好解决这个问题.我只想知道C#(以及我猜其他语言)如何在CIL中渲染以处理泛型的概念.

.net c# generics cil

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

为什么require_once会回显整个文件内容?

我在一个文件"evalmath.php"中有一个类.

如果我这样要求:require_once('evalmath.php');该文件的全部内容都会回显到屏幕上.

如果我这样做require_once( 'evalmath.php' );,它就没有.

咦?

编辑 - EVALMATH.PHP的源代码

<?

/*
================================================================================

EvalMath - PHP Class to safely evaluate math expressions
Copyright (C) 2005 Miles Kaufmann <http://www.twmagic.com/>

================================================================================

NAME
    EvalMath - safely evaluate math expressions

SYNOPSIS
    <?
      include('evalmath.class.php');
      $m = new EvalMath;
      // basic evaluation:
      $result = $m->evaluate('2+2');
      // supports: order of operation; parentheses; negation; built-in functions
      $result = $m->evaluate('-8(5/2)^2*(1-sqrt(4))-8');
      // create your own variables
      $m->evaluate('a = e^(ln(pi))');
      // or functions
      $m->evaluate('f(x,y) = x^2 + y^2 …
Run Code Online (Sandbox Code Playgroud)

php require-once

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

Azure搜索可以用作某些数据的主数据库吗?

Microsoft将Azure搜索推广为"云搜索",但并不一定表示它是"数据库"或"数据存储".它没有说它是大数据.

可以/应该使用azure搜索作为某些数据的主数据库吗?或者是否应该总是有一些"主要"数据存储区在天蓝色搜索中被"复制"以用于搜索目的?

如果是这样,在什么情况/什么情况下将Azure Search用作主数据库是有意义的?

database bigdata azure-cognitive-search

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

为什么.Net引用类型中的接口?

为什么接口引用类型?据我所知,接口是类(或结构)之间的契约,那为什么它是一个类型呢?我原以为它既不是值类型也不是引用类型.

.net types interface reference

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

如何一次读取一行csv文件并替换/编辑某些行?

我有一个60GB的csv文件,我需要对其进行一些修改.客户希望对文件数据进行一些更改,但我不想重新生成该文件中的数据,因为需要4天时间才能完成.

如何逐行读取文件(不将其全部加载到内存中!),并在我去的时候对这些行进行编辑,替换某些值等等?

.net c# csv parsing

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

C#重载返回类型 - 推荐方法

我有一种情况,我只希望返回类型与方法重载不同,但你不能在C#中这样做.

处理这个问题的最佳方法是什么?事实是我需要这个意味着我的程序结构存在缺陷吗?

鉴于在C#中这是不可能的,推荐的方法是什么?

.net c# overloading return-type

10
推荐指数
2
解决办法
8919
查看次数

JsonResult - 如何返回空的JSON结果?

我有一个ajax调用,它向我的一个控制器操作方法发出GET请求.

ajax调用应该获得JSON响应并使用它来填充数据网格.回调函数应该触发并构造网格并隐藏加载指示符.

$.getJSON('@Url.Action("Data", "PortfolioManager")' + '?gridName=revenueMyBacklogGrid&loginName=@Model.currentUser.Login', function (data) {

                        ConstructrevenueMyBacklogGrid(data);
                        $('#revenueMyBacklogLoadingIndicator').hide();

                    });
Run Code Online (Sandbox Code Playgroud)

问题是当我转换为JsonResult对象的对象没有数据时 - 它只是一个空集合.

returnJsonResult = Json(portfolioManagerPortalData.salesData.myYTDSalesClients,JsonRequestBehavior.AllowGet);

在这个例子中,它是一个myYTDSalesClients返回空的集合(这是好的和有效的 - 有时候不会有任何数据).

然后JSON对象返回一个空响应(空白,nadda),因为它不是有效的JSON,回调函数不会触发.因此,加载指示器仍然显示,看起来它只是永​​远加载.

那么,如何返回空的JSON结果{}而不是空白?

jquery json asp.net-mvc-4

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

REST API - 客户端如何知道POST到资源的有效负载是什么?

REST API体系结构的目标之一是将客户端和服务器分离.

我在规划REST API时遇到的一个问题是:"客户端如何知道什么是POST方法的有效负载?"

不知何故,API需要向UI传达给定资源的POST方法的有效负载.否则,我们回到依赖于使用API​​所需的带外知识,我们再次紧密耦合.

所以我有这样的想法,即资源上的GET的API响应将提供用于为该资源上的POST方法构造有效负载的规范.这将包括字段名称,数据类型,最大长度等.

这家伙也有类似的想法.

处理这个问题的正确方法是什么?大多数人只是依赖于带外信息吗?在这个问题上,人们在现实世界中做了什么?

编辑

我想出的解决这个问题的方法如下面的序列图所示:

休息api序列图

客户端和api服务是分开的.客户知道:

  1. 入口点
  2. 如何通过超媒体导航API.

这是发生的事情:

  1. 某人(用户)从客户端请求注册页面
  2. 客户端从API请求入口点,并接收所有超媒体链接以及有关如何合法遍历它们的适当元数据.
  3. 客户端基于与注册超媒体POST方法相关联的元数据构造注册表单.
  4. 用户填写表格并提交.
  5. 客户端使用正确的数据POST到API,一切都很顺利.

没有魔法/元资源,不需要使用元数据的方法.一切都由API提供.

思考?

rest post decoupling

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

IMAP Server Facade - 如何制作一个?

我已经实现了自定义电子邮件服务器和Web客户端.服务器只是一个REST API(类似于google的gmail API),它使用第三方(sendgrid)进行发送和接收.电子邮件存储在数据库中.Web客户端只是与REST客户端进行通信以进行发送和接收.

这种方法的问题是它没有在任何地方实现IMAP,这使得标准客户端(outlook,iphone等)无法连接并使用我们的电子邮件API.这限制了客户仅使用我们的客户端发送电子邮件.

我需要的是某种IMAP服务器"facade",它将管理与客户端的连接并调用我的REST API来实际处理请求(获取电子邮件,发送电子邮件等).

如何实施IMAP门面?是否有可能采用现有的MailServer并将其发布并将其所有"事件"指向调用我的API?

imap mail-server gmail-api

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

如何设计日历提醒/警报系统

我的网络应用程序中有一个日历系统.我们需要实施提醒.

是否有任何提醒/警报模式或系统设计或最佳实践?如果是,或者如果没有,可能有什么方法可以实现这一目标?

设计注意事项

  1. 如果日历事件被删除或更改,或者用户关闭该事件的提醒,则需要能够取消/阻止提醒.因此,我们不能只是在队列或其他东西中解雇并忘记它们.
  2. 提醒可以是事件之前的X时间量,X是在日历事件设置中设置的
  3. 提醒不需要超级准确(到第二个甚至是分钟).+ - 5分钟很好.
  4. 不想预先计算提醒,因为随着日历事件的变化,维护成为一场噩梦,特别是在涉及重复事件的情况下.

到目前为止,我的设计是这样的:

  1. 每10分钟安排一次预定的工作.
  2. 该作业将抓取所有可能的相关事件,并计算下一个10分钟间隔的潜在事件(过滤掉没有提醒集的事件).
  3. 作业调用服务器端的API端点,为所有相关方提供前端通知和电子邮件提醒.

但也许有比这更优雅的模式?已经建立的东西?或者天蓝色等工具?

我们的堆栈是.net和azure.

reminders calendar alerts

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