问题标签 [strong-typing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
695 浏览

asp.net-mvc - asp.net mvc 2中的强类型控制器名称

是否可以在 asp.net mvc 中使用强类型控制器名称和操作名称?例如,而不是

ActionLink("ActionName", "ControllerName");

像这样的东西

ActionLink(控制器名称(x=>x.ActionName()),控制器名称)

谢谢,亚历山大。

0 投票
3 回答
2036 浏览

asp.net-mvc - 强类型 MVC 视图中的 linq groupby

如何获得 IGrouping 结果以映射到视图?

我有这个查询:

ViewPage 声明的正确映射是什么?

0 投票
2 回答
238 浏览

asp.net - 用于 ASP.NET MVC 2 异步操作的强类型 API

有没有人尝试为 ASP.NET MVC 2 异步操作创建强类型 API?

最好的问候, 阿列克谢·扎哈罗夫

0 投票
3 回答
5095 浏览

c# - 如何创建一个完整的通用 TreeView 类数据结构

我想创建一个完全通用的树视图,如结构。像这样的东西:

正如您在此类源代码中看到的那样,父级以及子级都具有不同的通用数据类型。我还希望我的树视图具有无限数量的级别(不仅仅是 3 个)。这样,当我想在代码中使用我的节点时,它们都将是强类型的。不仅仅是我需要将它们转换为原始类型的对象。

是否可以在 C# 中创建这种结构,它的所有节点都是强类型的树视图?

谢谢

0 投票
2 回答
697 浏览

asp.net - 如何检查变量是否在 ASP.NET MVC 的主文件中定义

我已经创建了一个 Site.Master 文件,作为大多数站点的模板,并带有导航。此导航是基于递归实体(称为页面)动态创建的 - parentID 为 0 的页面是顶级页面,自然每个子项都会在该字段中携带其父项的 Id。

我创建了一个快速的小 HTML 帮助程序,它接受页面的 ID 并通过对具有与传递的 ID 匹配的 parentId 的子项执行 foreach 来生成导航。在大多数站点上,我希望 Site.Master 使用 0 的 parentId,但如果我在显示页面的强类型视图上,我自然希望使用页面的 Id。

有没有办法在 Site.Master 中执行这种条件逻辑(并且,这是否违反 MVC 规则)?“如果我在 /Page/{Id} 的强类型页面上,请使用 Id 渲染导航,否则使用 0”

0 投票
6 回答
5586 浏览

php - PHP 'instanceof' 因类常量而失败

我正在开发一个框架,我试图尽可能地强输入。(我在 PHP 中工作,并从 C# 中获取我喜欢的一些想法,并尝试在这个框架中利用它们。)我正在创建一个 Collection 类,它是域实体/对象的集合。它有点模仿List<T>.Net 中的对象。

我遇到了阻碍我输入这门课程的障碍。如果我有一个 UserCollection,它应该只允许用户对象进入它。如果我有 PostCollection,它应该只允许 Post 对象。

这个框架中的所有Collection都需要具备一定的基本功能,比如add、remove、iterate。我创建了一个界面,但发现我无法执行以下操作:

这破坏了它对界面的遵守。但是我不能强类型化接口,因为所有集合都是同一类型。所以我尝试了以下方法:

当我尝试运行这段代码时,我得到syntax error, unexpected T_STRING, expecting T_VARIABLE or '$'instanceof声明。对该问题进行一些研究,看起来原因的根源是$obj instanceof self对类进行测试是有效的。PHP 似乎没有处理self::type表达式中的整个常量语句。在变量周围添加括号会self::type引发有关意外“(”的错误。

一个明显的解决方法是不要使type变量成为常量。该表达式$obj instanceof $this->type工作得很好($type当然,如果被声明为变量)。

我希望有一种方法可以避免这种情况,因为我想将该值定义为一个常量,以避免以后对变量进行任何可能的更改。关于如何实现这一点的任何想法,或者在这方面我是否将 PHP 发挥到了极限?有没有一种“转义”或封装的方法,self::this以便 PHP 在处理时不会死?

更新根据下面的反馈,我想到了一些尝试——下面的代码有效!谁能想到 1) 不这样做的理由,2) 这最终不会奏效的原因,或 3) 更好的方法来实现这一目标?

更新#2:将上面的代码投入生产后,结果证明它不起作用。当我测试它时,我不知道它是如何工作的,但它根本不起作用。我想我坚持使用protected变量。

0 投票
1 回答
419 浏览

c# - C#:如何找到运行时类型的默认值?

所以在你的代码中给定一个静态类型你可以做

给定一个 Type 变量,你将如何做同样的事情,以便在运行时使用它?

换句话说,我如何在没有一堆 if 语句或使用泛型的情况下实现以下方法(因为我不知道在编译时传递给方法的类型)?

0 投票
3 回答
985 浏览

programming-languages - 我应该为我的下一个开发语言考虑哪些强类型语言?

我目前正在评估接下来我可以选择学习哪些强类型服务器端语言。我来自主要是 php 开发 (oop) 的背景。我正在研究强类型语言,因为我认为这是 php 的主要缺点(有时是优点)。

我知道 C# 和 Java (JSP/Servlets) 都是一种选择,但是我想考虑一下我尚未研究的其他语言。

我主要是从职业 POV 来看这一点,因此选择一种正在消亡或需求量低(现在或将来)的语言是没有意义的。

0 投票
14 回答
2467 浏览

c++ - 强类型语言能走多远?

假设我正在编写一个 API,我的一个函数采用一个表示通道的参数,并且只会介于 0 和 15 之间。我可以这样写:

或者我是否利用 C++ 作为一种强类型语言,让自己成为一种类型:

我的功能现在变成了这样:

但这完全是矫枉过正吗?我喜欢自我记录和保证它是它所说的那样,但是值得为这样一个对象的构造和销毁付出代价,更不用说所有额外的打字了吗?请让我知道您的意见和替代方案。

0 投票
1 回答
2703 浏览

c# - 为 Dictionary 创建强类型包装器的最佳方法

我有一个字典,其中包含其他类的配置值(将定期执行的任务,执行各种专门的逻辑),这些类持久化在数据库中,然后在执行时传回。

我想为这个字典创建一个强类型的包装器,既可以轻松访问值,也可以将它们转换为正确的类型。

目前我有这样的事情:

我的问题是是否有办法改进这种设计。

我考虑过的一件事是使用反射来获取属性的名称(以及配置值),如此所述。这样就不必创建一个字符串键,并隐式强制键与属性具有相同的名称(这是InitializeDefaultValues()代码运行所必需的),但它也掩盖了这样一个事实,即如果属性名称更改,配置值将更改。所以这是一个权衡。

这将类似于以下内容: