Tag: 类型

在C#中使用“类型”对象键入转换对象

到目前为止,这个对我来说有点棘手。 我想知道是否可以使用System.Type对象键入强制转换对象。 我在下面说明了我的意思: public interface IDataAdapter { object Transform(object input); Type GetOutputType(); } public class SomeRandomAdapter : IDataAdapter { public object Transform(object input) { string output; // Do some stuff to transform input to output… return output; } public Type GetOutputType() { return typeof(string); } } // Later when using the above methods I would […]

如何在运行时检测Column数据类型,同时使用标头解析CSV文件

我正在使用FileHelpers加载CSV数据,(信用 – 搜索时找到了这个答案/搜索结果)。 用户浏览目录,选择带有标题的文件,然后上传进行解析。 我的问题是 – 它们是一次性文件,其cols / classes / types以前不知道 。 问题 :如何在解析时检测列的数据类型? 搜索后我发现了一个名为public Type RecordType的函数{ get; } 它提供了记录类型..我需要帮助来获取记录中的Col数据类型。 var fNengine = new FileHelperEngine(); var fNrecords = engine.ReadFile(“AttendeesByEvents.csv”); // How to get the Col types? // HeaderText = typeof(..*notKNown*).GetCsvHeader(); //..var headers = fNrecords.HeaderText(); //foreach (var header in headers) // Console.WriteLine(header.RecordType() + `\n`); 我也在SO上找到了这个答案,但@ shmap00提到的运行时助手或者他所指的帮助不再存在,我也查看了源代码树。 […]

如何将枚举转换为类型

我有这样的枚举。 public enum eTypeVar { Int, Char, Float }; 我想将它转换为类型,做这样的事情: eTypeVar type=eTypeVar .Int; string str= eTypeVar.ToString .ToLower(); (str as type) a=1; 我该怎么办?

比较类型的VALUE和REFERENCE

我知道有很多方法可以比较C#中的VALUE和REFERENCES,但是当你尝试比较VALUE或REFERENCE时,我仍然对什么类型执行什么感到困惑。 字符串示例: string str = “hello”; string str2 = “hello”; if (str == str2) { Console.WriteLine(“Something”); } // Is this a comparison of value? if (str.Equals(str2)) { Console.WriteLine(“Something”); } // Is this a comparison of value? string.ReferenceEquals(str, str2); // Comparison of reference (True) Console.WriteLine((object)str1 == (object)str2); // Comparison of reference (True)

为什么C#.net中的Expression的Body不能使用int,double或bool类型的属性?

我有一个function: private string GetPropertyName(Expression<Func> f) { if ((f.Body as MemberExpression) != null) { return (f.Body as MemberExpression).Member.Name; } return “”; } 它以这种方式使用: string x1 = GetPropertyName(x => Property1); string x2 = GetPropertyName(x => Property2); string x3 = GetPropertyName(x => Property3); 其中Property1是一个int,Property2是一个字符串,Property3是一个对象…… 仅正确返回类型字符串和对象的Property2和Property3的名称,但Property1的f.Body作为MemberExpression为空… 为什么会这样,我们如何更改代码,以便函数正确返回属性的名称?

C#中浮点数和双数据类型的实际范围是多少?

我正在学习C#并尝试在C#中获得实际数据类型范围的逻辑直观表示。 我已经移动了整数,现在我浮动和双数据类型。 8位(1字节),sbyte,-128到127。 8位(1字节),字节,0到255。 16位(2字节),短,-32,768到32,767。 16位(2字节),ushort,0到65535。 32位(4字节),int,-2,147,483,648到2,147,483,647。 32位(4字节),uint,0到4,294,967,295。 64位(8字节),长,-9,223,372,036,854,775,808到9,223,372,036,854,775,807 64位(8字节),ulong,0到18,446,744,073,709,551,615。 以下是msdn中float和double数据类型大小的引用: Float: http : //msdn.microsoft.com/en-us/library/b1e65aza( v= vs.110).aspx 双倍: http : //msdn.microsoft.com/en-us/library/678hzkk9.aspx 因此,试图遵循上面编号列表中指定实际数字范围的惯例,这两个范围实际代表什么?

根据c#中的用户输入解析为原始类型

我这样做的代码使用我给它的reflection和字符串,而不是用户输入。 最终我希望用户能够说“浮动”“2.0”并让计算机说,是的,这是一个浮动,或计算机会说的“bool”“abc”,这是没有听说过的布尔值。 获取用户输入并将其转换为基本类型名称是很简单的,例如“string”到“System.String”,“float”到“System.Single”等等(尽管如果你知道一个函数要做到这一点,那也会很棒。) 这是代码: Console.WriteLine(“1.0 => {0}”, System.Single.Parse(“1.0”)); // this works fine. Type t = Type.GetType(“System.Single”); // for parsing floats MethodInfo mi = t.GetMethod(“System.Single.Parse”); // “ambiguous” if use “Parse” object[] parameters = new object[] { “1.0” }; float f = (float)(mi.Invoke(null, parameters)); // get null exception here. Console.WriteLine(“Was succesfully parsed to: ” + f); 但是我在第二行到最后一行继续得到一个空例外。 […]

如何更改分组List 以列出类型?

这是我的代码; public List GetFoldersWithIndexedDocuments() { //TODO – I can’t find right query. We need folders with documents but only documents which be Indexed using (ISession session = DatabaseProvider.SessionFactory.OpenSession()) { List dokumanList = session.QueryOver() .Where(x => x.IndexlenmeTarihi != null) .List().ToList(); var list = dokumanList.GroupBy(x => x.Klasor.Aciklama); List folders = list as List; ////Transforming SbtKlasorModel to SbtKlasorViewModel […]

将公共属性约束到List 中的特定类型

我的原始问题与特定类型的Constrain类型基本相同。 我想要完成的基本上就是这个。 public List MyPublicProperty { get; set; } where T IMyCustomInterface 现在阅读上面的问题我可以看出它显然是不可能的。 为了让您了解上下文,我正在构建一个旨在支持多种类型的解析器(假设它们实现了特定的接口),但我没有对它可能解析的数据类型进行编译类型假设。 它只是提供一个受支持的类型列表,应该能够自动计算其余的类型。 基本上我想知道的是,对于这样的属性(如果存在的话),除了运行时类型检查时(除了运行时类型检查时)是什么? 编辑:建议的解决方案似乎不起作用。 我最终得到的代码如下: public class CustomSerializableTypeList : List where T : ITcpSerializable { } CustomSerializableTypeList myCustomTypes = new CustomSerializableTypeList(); 并收到以下错误: 类型’System.Type’不能在generics类型或方法’CustomSerializableTypeList’中用作类型参数’T’。 没有从’System.Type’到’ITcpSerializable’的隐式引用转换。 一旦我查看并考虑已建议的generics实现,该错误就非常有意义。 必须有办法解决这个问题。

钱的地图好漂浮吗?

sql数据类型money map到c#float吗?