- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
他们两个听起来很相似。来自 msdn:
ParameterInfo.IsOptional
Gets a value indicating whether this parameter is optional.
This method depends on an optional metadata flag. This flag can be inserted by compilers, but the compilers are not obligated to do so.
This method utilizes the Optional flag of the ParameterAttributes enumerator.
Gets a value that indicates whether this parameter has a default value.
public void A(string value)
{
}
public void B(string value, int i = -1)
{
}
var a = AInfo.GetParameters().Select(p => p.HasDefaultValue).ToArray();
var b = AInfo.GetParameters().Select(p => p.IsOptional).ToArray();
var c = BInfo.GetParameters().Select(p => p.HasDefaultValue).ToArray();
var d = BInfo.GetParameters().Select(p => p.IsOptional).ToArray();
//a equals b; and c equals d
HasDefaultValue
在 .NET 4.5 新?
最佳答案
如果我们看一下 IsOptional
的实现我们会看到:
public bool IsOptional
{
[__DynamicallyInvokable] get
{
return (this.Attributes & ParameterAttributes.Optional) != ParameterAttributes.None;
}
}
This method depends on an optional metadata flag. This flag can be inserted by compilers, but the compilers are not obligated to do so.
IsOptional
旗帜。
public override bool HasDefaultValue
{
get
{
if (this.m_noMetadata || this.m_noDefaultValue)
return false;
else
return this.GetDefaultValueInternal(false) != DBNull.Value;
}
}
IsOptional
的示例是真的:
public static void Method([Optional]string parameter)
{
}
ParameterInfo parameterInfo = typeof(Program).GetMethod("Method").GetParameters()[0];
//Is true
bool isOptional = parameterInfo.IsOptional;
//Is false
bool hasDefaultValue = parameterInfo.HasDefaultValue;
关于.net - ParameterInfo.IsOptional 和 ParameterInfo.HasDefaultValue 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16186694/
使用 EF Core 时,我们可以在属性上设置默认值。 public class Foo { public int Bar { get; set; } } public class FooCo
他们两个听起来很相似。来自 msdn: ParameterInfo.IsOptional Gets a value indicating whether this parameter is optio
我在使用 Entity Framework 核心插入具有默认值列的记录时遇到了一个奇怪的问题。有没有其他方法可以获得预期的行为,我是否遗漏了一些愚蠢的东西? tldr:将 int 属性设置为 0 或
更新到 Dotnet Core 3.1 并移植我的代码,我发现在我的 DbContext 中出现以下错误: 'PropertyBuilder' does not contain a definitio
我是一名优秀的程序员,十分优秀!