小编Eny*_*yra的帖子

如何获取程序集文件版本

AssemblyInfo有两个集版本:

  1. AssemblyVersion:指定要归属的程序集的版本.
  2. AssemblyFileVersion:指示编译器使用Win32文件版本资源的特定版本号.Win32文件版本不需要与程序集的版本号相同.

我可以Assembly Version使用以下代码行:

Version version = Assembly.GetEntryAssembly().GetName().Version;
Run Code Online (Sandbox Code Playgroud)

但我怎么能得到Assembly File Version

.net c# assemblies version

687
推荐指数
5
解决办法
44万
查看次数

如何将NSString转换为NSNumber

如何可以转换NSString包含多个任何原始数据类型(例如int,float,char,unsigned int,等等)?问题是,我不知道字符串在运行时将包含哪种数字类型.

我知道如何做到这一点,但我不确定这是否适用于任何类型,也是无符号和浮点值:

long long scannedNumber;
NSScanner *scanner = [NSScanner scannerWithString:aString];
[scanner scanLongLong:&scannedNumber]; 
NSNumber *number = [NSNumber numberWithLongLong: scannedNumber];
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

objective-c nsnumber primitive-types nsstring

565
推荐指数
9
解决办法
41万
查看次数

如何读取包含特殊字符的ANSI编码文件

我正在写一个TFS Checkin策略,它检查我们的源文件是否包含我们的文件头.

我的问题是,我们的文件头包含一个特殊字符"©",不幸的是我们的一些源文件是用ANSI编码的.因此,如果我在策略中读取这些文件,则字符串看起来像"Copyright 2009".

string content = File.ReadAllText(pendingChange.LocalItem);
Run Code Online (Sandbox Code Playgroud)

我厌倦了改变字符串的编码,但它没有帮助.那么如何阅读这些文件,我得到了正确的字符串"Copyright©2009"?

感谢帮助!

关心恩伊

c# encoding ansi

59
推荐指数
3
解决办法
7万
查看次数

如何在C#中删除不在堆栈顶部的堆栈项

不幸的是,只能通过"pop"从堆栈中删除项目.堆栈没有"删除"方法或类似的东西,但我有一个堆栈(是的,我需要一个堆栈!),我需要从中删除一些元素.

有这个诀窍吗?

c# stack

32
推荐指数
4
解决办法
4万
查看次数

如何从c#中的MethodCallExpression调用该方法

我有一个方法调用表达式并尝试调用该方法.我找到了一种方法,但是我在检索参数值方面遇到了问题,因为不是每个参数都用ConstantExpression描述.

Expression<Action<T>> = t => t.DoSomething(Par0, Par1, Par2);
MethodCallExpression methodCallExpression = selector.Body 
                                               as MethodCallExpression;

// get the information which is needed to invoke the method from the provided 
// lambda expression.
MethodInfo methodInfo = methodCallExpression.Method;
object[] arguments = methodCallExpression.Arguments.OfType<ConstantExpression>()
                            .Select(p => p.Value).ToArray();

// invoke the expression on every item within the enumerable
foreach (TSource item in source)
{ 
    methodInfo.Invoke(item, arguments);
}
Run Code Online (Sandbox Code Playgroud)

另外,我已经看到了一些其他方法来调用该方法,现在我不确定这是什么方法.

var func = expression.Compile();
var success = func.Invoke();
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何从中检索方法参数值methodCallExpression.Arguments

或者有更简单的方法来实现我的目标吗?

.net c# parameters lambda

20
推荐指数
2
解决办法
2万
查看次数

如何在Objective-C中检测属性返回类型

我在运行时在objective-c中有一个对象,我只知道KVC键,我需要检测此属性的返回值类型(例如,我需要知道它是NSArray还是NSM​​utableArray),我该怎么做呢?

types runtime properties objective-c key-value-observing

19
推荐指数
2
解决办法
2万
查看次数

使用包含协变类型的项目的访问器在单元测试项目中构建失败

我在项目中添加了一个协变接口:

interface IView
{
}

interface IPresenter<out TView> where TView : IView
{
    TView View { get; }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一些类,实现了这些接口:

class TestView : IView
{
}

class TestPresenter : IPresenter<TestView>
{
  public TestView View
  {
    get { return something; }
  }

  private void DoSomething()
  {
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以毫无问题地使用它:

IPresenter<IView> presenter = new TestPresenter();
Run Code Online (Sandbox Code Playgroud)

所以一切似乎都是正确的,所以我认为我的协方差用法是正确的.不幸的是,我们的单元测试项目包含位于同一项目中的某些类型的私有访问器,如协变接口,这会导致构建失败.

无法从程序集'GenericInheritanceTest_Accessor,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'GenericInheritanceTest.IPresenter_Impl`1',因为它声明了协变或逆变类型参数,而不是接口或委托.

究竟是什么问题?我的实施是否有失败,分别是.怎么解决这个问题?不能,我们一旦使用协变类型就必须避免访问者?是否可以阻止为某些类型创建访问器来解决此问题?

c# unit-testing accessor covariance

14
推荐指数
1
解决办法
4792
查看次数

比较C#中的枚举标志

我需要检测是否在枚举值中设置了一个标志,哪个类型用Flag属性标记.

通常它是这样的:

(value & flag) == flag
Run Code Online (Sandbox Code Playgroud)

但是因为我需要通用泛型(有时在运行时我的事件只有一个"Enum"引用.我找不到一个简单的方法来使用&运算符.目前我这样做:

    public static bool IsSet<T>(this T value, T flags) where T : Enum
    { 
        Type numberType = Enum.GetUnderlyingType(typeof(T));

        if (numberType.Equals(typeof(int)))
        {
            return BoxUnbox<int>(value, flags, (a, b) => (a & b) == b);
        }
        else if (numberType.Equals(typeof(sbyte)))
        {
            return BoxUnbox<sbyte>(value, flags, (a, b) => (a & b) == b);
        }
        else if (numberType.Equals(typeof(byte)))
        {
            return BoxUnbox<byte>(value, flags, (a, b) => (a & b) == b);
        }
        else if (numberType.Equals(typeof(short)))
        {
            return BoxUnbox<short>(value, flags, (a, …
Run Code Online (Sandbox Code Playgroud)

c# generics enums flags casting

13
推荐指数
4
解决办法
1万
查看次数

适用于iPhone应用程序的Xml序列化库

Apple为对象序列化/反序列化提供了NSArchiver和NSUnachriver,但是这不能处理任何自定义xml架构.因此,必须手动填充具有任何自定义xml架构的数据的对象结构.由于iPhone开发者社区正在快速增长,许多新手程序员都在绝望地处理可用的xml解析可能性.

iPhone SDK仅为xml解析提供NSXmlParser,这对于读取xml文件的某些部分比填充整个对象结构更有用,这真的很痛苦.

另一种可能性是着名的libxml库,它是用ANSI C编写的 - 对于那些开始使用objective-c进行编程并且之前从未学过适当的C的人来说,它不容易使用.事件中有很多可用的包装器,处理xml对于新手来说可能是一种痛苦.

在这里我的想法发生了.自动填充对象结构的XmlSerializer库可以使许多程序员更轻松地提高应用程序质量.我的想法应该像这样工作:

xml文件

<Test name="Michael" uid="28">
    <Adress street="AlphaBetaGammastrasse 1" city="Zürich" postCode="8000" />

  <Hobbies>
    <Hobby describtion="blabla"/>
    <Hobby describtion="blupblup"/>
  </Hobbies>
</Test>
Run Code Online (Sandbox Code Playgroud)

要填写的课程

@interface Test : NSObject {
    NSString *name;
    Adress *adress;
    NSArray *hobbies;
    int uid;
}
@property (nonatomic, copy) NSString *name;
@property (nonatomic, retain) Adress *adress;
@property (nonatomic, retain) NSArray *hobbies;
@property (nonatomic, readwrite) int uid;
@end

@interface Adress : NSObject {
    NSString *street;
    NSString *city;
    int postCode;
}
@property (nonatomic, copy) NSString *street;
@property (nonatomic, …
Run Code Online (Sandbox Code Playgroud)

xml iphone serialization objective-c

11
推荐指数
1
解决办法
2万
查看次数

如何传递未知大小的二维数组作为方法参数

我试图传递一个二维数组,其大小可以是动态的,作为方法参数.

在方法中,我想使用具有通用数组语法的数组.

int item = array[row][column];
Run Code Online (Sandbox Code Playgroud)

要传递数组是不可能的,所以我想要使用指针指针.

- (void)doSomethingWithArray:(int **)array columns:(int)nColumns rows:(int)nRows
{
   int item = array[n][m];
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将数组作为参数传递时,我遇到了问题

int array[numberOfRows][numberOfColumns];

[someObject doSomethingWithArray:array columns:numberOfColumns rows:numberOfRows];
Run Code Online (Sandbox Code Playgroud)

我发现了很多提示和技巧,但不知怎的,我想用它的方式并没有真正起作用.

感谢您的帮助,恩伊

c pointers objective-c multidimensional-array

6
推荐指数
2
解决办法
2620
查看次数

XCode的T4工具

XCode是否存在类似Visual Studio的T4文本模板生成工具?

感谢您的帮助,Enyra

t4 xcode code-generation texttemplate

5
推荐指数
1
解决办法
350
查看次数

Enumerable.Except 不使用我的自定义比较器

我尝试将 except 方法与自定义相等比较器一起使用,但它不起作用。

我的平等比较器:

public class BusinessObjectGuidEqualityComparer<T> : IEqualityComparer<T> where T : BusinessObject
{
    #region IEqualityComparer<T> Members

    /// <summary>
    /// Determines whether the specified objects are equal.
    /// </summary>
    /// <param name="x">The first object of type <paramref name="T"/> to compare.</param>
    /// <param name="y">The second object of type <paramref name="T"/> to compare.</param>
    /// <returns>
    /// <see langword="true"/> If the specified objects are equal; otherwise, <see langword="false"/>.
    /// </returns>
    public bool Equals(T x, T y)
    {
        return (x == null && y …
Run Code Online (Sandbox Code Playgroud)

c# linq extension-methods

4
推荐指数
1
解决办法
3890
查看次数