Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以仅使用C#的动态部分创建整个应用程序?_C# - Fatal编程技术网

是否可以仅使用C#的动态部分创建整个应用程序?

是否可以仅使用C#的动态部分创建整个应用程序?,c#,C#,我对此感到相当顽皮,所以请不要认为我会认真尝试,因为我从痛苦的经历中知道静态类型检查系统的优势 但是,作为一个概念,是否有可能基本上以一种完全动态的方式进行C#,将静态类型检查器扔到一边,并说“呸,你太过时了!” 我最近在IronPython和F#方面有着丰富的经验,但在使用基于C的语言时,我确实感到宾至如归 在通往动力的道路上,你能走多远?我最近写了一个XML到ExpandoObject解析器,非常棒,感觉就像javascript原型 动态编程的优化程度有多高,它是否与NodeJs和CPyth

我对此感到相当顽皮,所以请不要认为我会认真尝试,因为我从痛苦的经历中知道静态类型检查系统的优势

但是,作为一个概念,是否有可能基本上以一种完全动态的方式进行C#,将静态类型检查器扔到一边,并说“呸,你太过时了!”

我最近在IronPython和F#方面有着丰富的经验,但在使用基于C的语言时,我确实感到宾至如归

在通往动力的道路上,你能走多远?我最近写了一个XML到ExpandoObject解析器,非常棒,感觉就像javascript原型

动态编程的优化程度有多高,它是否与NodeJs和CPython等真正的动态编程语言环境一样快

是否有可能以完全动态的方式基本上完成C#

当然,为什么不呢?只需将所有内容键入“动态”

我最近对IronPython和F有着丰富的经验#

我注意到F#不是一种动态类型的语言;它是一种隐式类型的静态类型语言。仅仅因为你没有看到类型检查并不意味着它不存在

动态内容的优化程度如何

它在速度方面进行了优化,但在内存使用和代码大小方面做得很好。我们在每个呼叫站点上建立一个缓存。当你第二次访问一个呼叫站点时,它应该是非常快的,但是你为此付出了内存成本

它是否和一些真正的动态编程语言环境(如NodeJs和CPython)一样快

两种都试一下,测量一下,你就会知道了。

不,这不起作用

是的,它可能适用于您的代码,但您将处理许多以这种方式编写的系统库,这仍然使整个应用程序不是动态的。基本上,您可以与.NET framework中的任何静态对象进行交互,而不会违反您自己苛刻的要求:

是否有可能基本上以完全动态的方式进行C#,抛出静态类型 把棋子移到一边,说“呸,你太老套了!”

这太难了。如果您愿意“让我的代码完全动态”,那么您可能能够做到这一点,但这并不是您所要求的


另外,作为旁注,“动态”不是“旧的法赫德方式”。这只是一种方式。许多较老的语言都是强类型的。在汇编程序之后,peopel立即开始使用强类型的langauges。过了一段时间,情况变得很活跃。但这意味着“老法赫德方式”的说法也是错误的。当然,在与需要特定类型的其他代码(包括FCL)进行接口的任何时候,都必须强制转换为需要的类型。但如果你真的看好这一点,你可以创建一些方法,如:

public static object IntegerAdd(object x, object y)
{
  return Convert.ToInt32(x) + Convert.ToInt32(y);
}
现在,从代码的其余部分来看,有一些静态类型正在进行这一事实永远不会让您感到不安

我最近对IronPython和F#有着丰富的经验

F#有点像真正大量使用
var
真正大量使用类型推断,而不像
动态
和后期绑定。有些C#代码(特别是大量使用linq的代码)在没有一个显式声明的类型的情况下执行很多操作并不罕见,但是会一直使用静态类型,这是一个更接近的比较

在通往动力的道路上,你能走多远?我最近写了一个XML到ExpandoObject解析器,非常棒,感觉就像javascript原型

如果你写它是因为你喜欢尝试这种方法,那就太棒了

如果你写它是因为你需要它给你的东西,那么它也很棒

如果你写它是因为你需要它给你的东西,你喜欢尝试这种方法,那就太棒了!在工作中你还能要求什么


如果你用它来回避C#的优点而忽视javascript的优点,那么我建议你要小心。我们离“老式”的静态输入还有很长的路要走。这两种方法都有各自的优点。我不是说外交,我真的认为他们是这样说的。C#提供了这两种语言的混合,这意味着它可以受益于动态类型的一些优点,尽管它通常是一种强类型语言。这是一个富有表现力且高效的组合,你不必在一条腿上开枪,因为你更喜欢另一条腿。

这是一个奇怪的、毫无意义但却十分有趣的问题!NET 1.0中的许多程序都是这样编写的。我还想听听专家们对此的看法,特别是关于动态语言运行时的优化程度。+1可以克服顽皮。这些“疯狂”的实验经常会让你接受新的想法和模式。@leppie是的,我对那些日子记得很清楚。我觉得自己像个海盗:)是的,F#不是动态的,但你可以用它做一些我在C#中错过的好事情,有时我认为从类型系统的行为来看,它是动态的。没有时间进行测量,忙于陷入无聊的分层应用程序。有很多时间让NodeJS,新手,发现服务器上Javascript的整个概念是“与魔鬼共进”,但它似乎工作得很好,所有这一切都是在一个缓慢的原型动态语言中。谢谢你的回复Eric:)嘿Eric,我一直在阅读关于web的文章,想了解Windows 8环境下的C#/.net(滑动面板(Metro)方面的一些知识,你有什么想/允许/可以分享的消息吗?我想在这里抢先一步,跟上动态的发展,C#的未来是动态的吗?@WeNeedAnswers:C#中的动态特性的目的是更好地与语言(IronPython)、运行时环境(JavaScript/HTML)和遗留对象模型(Office)进行互操作,这些模型假定