小编Joh*_*ers的帖子

如何通过Reflection获取字符串属性的值?

public class Foo
{
   public string Bar {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

如何通过反射获得字符串属性Bar的值?如果PropertyInfo类型是System.String,则以下代码将引发异常

Foo f = new Foo();
f.Bar = "Jon Skeet is god.";

foreach(var property in f.GetType().GetProperties())
{
 object o = property.GetValue(f,null); //throws exception TargetParameterCountException for String type
}
Run Code Online (Sandbox Code Playgroud)

看来我的问题是该属性是一个索引器类型,带有System.String.

另外,如何判断该属性是否为索引器?

c# string reflection properties

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

将ASMX转换为WCF Web服务需要多少工作量?

我有2个Web服务,共有大约6个Web方法,大多数代码都是以任何方式放在程序集中,而web服务asmx实际上只是调用这些程序集方法并返回它们的返回类型.

将Web服务从ASMX转换为WCF要付出多少努力?

我几乎在这个阶段控制唯一 - 连接到Web服务的非基于Web的客户端,所以这不是一个真正的问题,产品是在预发布.

c# wcf asmx

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

如何使用iTextSharp进行文本格式化

我正在使用iTextSharp从PDF中读取文本内容.我也能读到这一点.但我正在丢失文字格式,如字体,颜色等.有没有办法获得格式.

以下是我用于确切文本的代码段 -

PdfReader reader = new PdfReader("F:\\EBooks\\AspectsOfAjax.pdf");
textBox1.Text = ExtractTextFromPDFBytes(reader.GetPageContent(1));

private string ExtractTextFromPDFBytes(byte[] input)
{
    if (input == null || input.Length == 0) return "";
    try
    {
        string resultString = "";
        // Flag showing if we are we currently inside a text object
        bool inTextObject = false;
        // Flag showing if the next character is literal  e.g. '\\' to get a '\' character or '\(' to get '('
        bool nextLiteral = false;
        // () Bracket nesting level. Text appears …
Run Code Online (Sandbox Code Playgroud)

.net c# itextsharp

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

为什么String.Clone()返回原始字符串而不是它的副本?

令人惊讶的是,String.Clone()不会像返回的那样返回字符串的副本String.Copy().相反,它返回'this'原始字符串.

我想了解为什么.Net Framework团队选择这样做.

根据MSDN:

ICloneable接口[...]要求您的Clone方法实现返回当前对象实例的副本.

String.Clone() 显然不遵循本指南.

我知道字符串是不可变的,但如果不变性是这里的原因,String.Copy()也会返回,this但事实并非如此.

当然,这是一个相当理论化的问题.

.net c# string icloneable

20
推荐指数
1
解决办法
963
查看次数

SQL代码比C#代码更快吗?

几个月前,我开始在这家编程公司工作.他们使用的一种做法是在SQL而不是C#中尽可能多地完成工作.

所以,让我说我有一个写一些文件列表的简单例子:

是这样的:

string SQL = @"
    SELECT f.FileID,
           f.FileName,
           f.FileExtension,
           '/files/' + CAST(u.UserGuid AS VARCHAR(MAX)) + '/' + (f.FileName + f.FileExtension) AS FileSrc,
           FileSize=
           CASE
               WHEN f.FileSizeB < 1048576 THEN CAST(CAST((f.FileSizeB / 1024) AS DECIMAL(6, 2)) AS VARCHAR(8)) + ' KB'
               ELSE CAST(CAST((f.FileSizeB / 1048576) AS DECIMAL(6, 2)) AS VARCHAR(8)) + ' MB'
           END
      FROM Files f
INNER JOIN Users u
        ON f.UserID = u.UserID
";

// some loop for writing results {
//     write...
// }
Run Code Online (Sandbox Code Playgroud)

比这样的事情更快或更好:

string …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server

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

静态函数与const函数

我在看一个成员函数

int funct(int x) const; 
Run Code Online (Sandbox Code Playgroud)

而且我想知道是否

static int funct(int x); 
Run Code Online (Sandbox Code Playgroud)

会更好.

如果成员函数不使用任何成员变量,那么它应该是静态的.有什么东西可以阻止这个吗?

c++ static-methods

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

用jQuery枚举?

$("#bc [id$=_dropdownID]").change(function() {
    if (this.value == '2' || this.value == '3') {
        $("#bc .pnl").show();
    }
    else {
        $("#bc .pnl").hide();
    }
Run Code Online (Sandbox Code Playgroud)

我在jQuery中有以下代码.有没有什么办法可以用ac#enum替换上面代码中的硬编码常量2和3?jQuery是否支持枚举,如果是,如何实现?任何建议欢迎....

javascript jquery enums

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

PostSharp和Visual Studio代码覆盖率

我最近开始在我的一些项目中使用PostSharp,并注意到一个不幸的副作用 - 它使用的所有项目中的代码覆盖率显着下降.

我猜测这种情况发生的原因是分析仪看到了PostSharp代码并且很多代码没有经过测试(例如用于通用异常处理和日志记录的样板代码).我显然可以为使用这些方面的每种方法编写单元测试,但如果我说实话,那感觉就像浪费时间.

有没有人有这种经历的经验?

.net c# code-coverage postsharp

19
推荐指数
1
解决办法
760
查看次数

在C#中,引用数组变量是否较慢?

我有一个整数数组,我正在循环它们:

for (int i = 0; i < data.Length; i++)
{
  // do a lot of stuff here using data[i]
}
Run Code Online (Sandbox Code Playgroud)

如果我做:

for (int i = 0; i < data.Length; i++)
{
  int value = data[i];
  // do a lot of stuff with value instead of data[i]
}
Run Code Online (Sandbox Code Playgroud)

是否有任何表现收益/损失?

根据我的理解,直接访问C/C++数组元素,即整数的n元素数组具有长度为n*sizeof(int)的连续内存块,而程序访问元素i通过执行类似*data [i]的操作=*data [0] +(i*sizeof(int)).(请原谅我滥用符号,但你理解我的意思.)

所以这意味着C/C++在引用数组变量时应该没有性能增益/损失.

C#怎么样?C#有一堆额外的开销,如data.Length,data.IsSynchronized,data.GetLowerBound(),data.GetEnumerator().

显然,C#数组与C/C++数组不同.

那么判决是什么?我应该存储int value = data [i]并使用值,还是没有性能影响?

.net c# arrays optimization performance

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

如何在Visual Studio 2012中获得行结束字形?

有没有办法在Visual Studio 2012中获得行结束字形?

以下屏幕截图(来自记事本++)显示了我想要的内容(CR LF部分): 在此输入图像描述

editor visual-studio-2012

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