Tag: 类型

在c#中是十进制和十进制不同?

在c#中,如果我使用decimal (小写’d’),IDE会以深蓝色显示(如int )。 如果我使用Decimal (大写’d’),IDE会以teal(如类名)显示它。 在这两种情况下,工具提示都是struct System.Decimal 。 有什么区别吗? 是一个“首选”?

C#:存储百分比,50还是0.50?

当在变量中保持百分比值时,将它们保持为整数与分数之间存在偏好。 那应该是变量是否保持0到100之间或0.00到1.00之间的数字? 在任何一种情况下,保存值的变量都是十进制类型。 我正在与之交互的数据库恰好将它们存储为0到100的整数。 注意:我使用“整数”这个词来表示0到100范围内的值,尽管这些值可能包含小数分量(例如,25.75)。 我不知道如何描述两个百分比值范围之间的差异

C#中的新类型定义

我正在寻找定义新类型并在C#中使用它的可能性,如下所示: class级定义: public class Position { public double180 Longitude { get; set; } // double180 is a type within a range -180 and 180 public double90 Latitude { get; set; } // double90 is a type within a range of -90 and 90 } 用法: var position = new Position { Longitude = 45, Latitude […]

为什么“as”运算符不在C#中使用隐式转换运算符?

我在C#(虚拟代码)中定义了从/到某个类型的隐式字符串转换: public class MyType { public string Value { get; set; } public static implicit operator MyType(string fromString) { return new MyType { Value = fromString }; } public static implicit operator string(MyType myType) { return myType.Value; } } 在外部库代码的某处, MyType的实例作为object参数传递给方法。 该方法的一部分看起来像这样的东西: private void Foo(object value) { // … code omitted var bar = value […]

不太通用的generics? C#generics算术的一种可能解决方案

目前,C#中的generics不允许任何理智的方式来执行算术。 有一些尴尬的解决方法,但它们都不是很整洁,所有这些都会降低性能。 根据这次访谈 ,不可能实现具有算术类型的接口,因此建议使用这样的解决方法。 但你可以做的是让你的矩阵作为计算器的参数,并在计算器中,有一个名为multiply的方法。 你去实现它,然后将它传递给Matrix。 为什么我必须告诉高级编程语言如何添加和增加数字? [由于受欢迎的需求而编辑] 为什么不简单地允许将Generic限制为类型列表? 例如。 class Matrix where T : int,long,float,double 语法当然可以是不同的。 但是编译器只需要检查类型是否在列表中,并且所使用的运算符适用于所有类型,这应该比显然太难的接口建议简单得多。 是否有任何明显的原因导致无法实施?

C#静态类型不能用作参数

public static void SendEmail(String from, String To, String Subject, String HTML, String AttachmentPath = null, String AttachmentName = null, MediaTypeNames AttachmentType = null) { …. // Add an attachment if required if (AttachmentPath != null) { var ct = new ContentType(MediaTypeNames.Text.Plain); using (var a = new Attachment(AttachmentPath, ct) { Name = AttachmentName, NameEncoding = Encoding.UTF8, […]

generics类的协方差

在C#中有什么方法可以实现以下目的: class MyClass where T : BaseTypeInner {} class BaseTypeInner {} class A : BaseTypeInner {} class B : BaseTypeInner {} void Main() { MyClass variant; variant = new MyClass (); // ERROR: Cannot implicitly convert type ‘UserQuery.MyClass’ to ‘UserQuery.MyClass’ variant = new MyClass (); }

长在64位机器上

在64位机器上是长128位? 编辑:重复的问题; 在x64上看到sizeof(int)? 。

如何在C#中检查运行时对象是否属于某种类型?

如何在C#中检查运行时对象是否属于某种类型?

使用字符串值创建新实例

我有几个类:SomeClass1,SomeClass2。 如何使用字符串中的类名创建其中一个类的新实例? 通常,我会这样做: var someClass1 = new SomeClass1(); 如何从以下创建此实例: var className = “SomeClass1”; 我假设我应该使用Type.GetType()或其他东西,但我无法弄明白。 谢谢。