为什么C类产品在市场上需求量持续增长?

2026-04-29 01:142阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计520个文字,预计阅读时间需要3分钟。

为什么C类产品在市场上需求量持续增长?

如果这是重复的问题,请直接回应我。否则,请说明这是一个小问题,我会花很长时间解决。为什么在我使用foreach块中的隐式类型循环变量时,我没有获得Intellisense提示?类型提示似乎非常不明显。

如果这是重复的话请原谅我,但对我来说这是一个小问题,我只能花很长时间才能好奇.为什么当我在foreach块中使用隐式类型的循环变量时,我没有得到Intellisense?推断类型似乎非常明显.

我正在使用ReSharper,但是当我将Intellisense切换到VS时,我得到了相同的行为,这并不认为这是罪魁祸首.

编辑:对不起,稍后,但我正在迭代DataTable.Rows,它使用一个无类型的ieterator,正如Marc在下面解释的那样.

我怀疑你枚举的数据没有输入 – 例如,很多用1.1编写的东西只实现IEnumerable,并且没有自定义迭代器(你实际上不需要IEnumerable< T>来键入迭代 – 事实上你甚至不需要IEnumerable来使用foreach;很多1.1类型写了特殊的枚举器类型来避免装箱/投掷等 – 很多工作).在许多情况下,修复它们将是一个重大变化.

这里的一个简单示例是PropertyDescriptorCollection:

var props = TypeDescriptor.GetProperties(obj); foreach(PropertyDescriptor prop in props) {...} // fine

但实际上,PropertDescriptorCollection的枚举器只是IEnumerator,所以Current是对象 – 因此当你使用var时你总是得到对象:

var props = TypeDescriptor.GetProperties(obj); foreach(var prop in props) {...} // prop is "object"

将此与(同样1.1)StringCollection对比;这有一个自定义枚举器(StringEnumerator);所以如果你使用foreach和var,你会得到字符串(而不是对象).

在任何2.0及以上的版本中,期望更好的打字是合理的,原因有两个:

为什么C类产品在市场上需求量持续增长?

>泛型(对于简单的情况),可以合理地编写强类型集合
>迭代器块(对于非平凡的情况),可以编写自定义迭代器而不会疯狂

但即便如此,仍有一些情况,如果你没有得到你期望的类型;您可以(也可能更清楚地)手动指定类型,或使用Cast< T>()/ OfType< T>().

本文共计520个文字,预计阅读时间需要3分钟。

为什么C类产品在市场上需求量持续增长?

如果这是重复的问题,请直接回应我。否则,请说明这是一个小问题,我会花很长时间解决。为什么在我使用foreach块中的隐式类型循环变量时,我没有获得Intellisense提示?类型提示似乎非常不明显。

如果这是重复的话请原谅我,但对我来说这是一个小问题,我只能花很长时间才能好奇.为什么当我在foreach块中使用隐式类型的循环变量时,我没有得到Intellisense?推断类型似乎非常明显.

我正在使用ReSharper,但是当我将Intellisense切换到VS时,我得到了相同的行为,这并不认为这是罪魁祸首.

编辑:对不起,稍后,但我正在迭代DataTable.Rows,它使用一个无类型的ieterator,正如Marc在下面解释的那样.

我怀疑你枚举的数据没有输入 – 例如,很多用1.1编写的东西只实现IEnumerable,并且没有自定义迭代器(你实际上不需要IEnumerable< T>来键入迭代 – 事实上你甚至不需要IEnumerable来使用foreach;很多1.1类型写了特殊的枚举器类型来避免装箱/投掷等 – 很多工作).在许多情况下,修复它们将是一个重大变化.

这里的一个简单示例是PropertyDescriptorCollection:

var props = TypeDescriptor.GetProperties(obj); foreach(PropertyDescriptor prop in props) {...} // fine

但实际上,PropertDescriptorCollection的枚举器只是IEnumerator,所以Current是对象 – 因此当你使用var时你总是得到对象:

var props = TypeDescriptor.GetProperties(obj); foreach(var prop in props) {...} // prop is "object"

将此与(同样1.1)StringCollection对比;这有一个自定义枚举器(StringEnumerator);所以如果你使用foreach和var,你会得到字符串(而不是对象).

在任何2.0及以上的版本中,期望更好的打字是合理的,原因有两个:

为什么C类产品在市场上需求量持续增长?

>泛型(对于简单的情况),可以合理地编写强类型集合
>迭代器块(对于非平凡的情况),可以编写自定义迭代器而不会疯狂

但即便如此,仍有一些情况,如果你没有得到你期望的类型;您可以(也可能更清楚地)手动指定类型,或使用Cast< T>()/ OfType< T>().