小编Joe*_*Fan的帖子

函数获取任何方法的名称?

我想有一个名为GetMethodName的函数,以便下面的代码将打印"myMethod":

int myMethod(string foo, double bar)
{
    // ...
}

Console.Out.WriteLine(GetMethodName(myMethod));
Run Code Online (Sandbox Code Playgroud)

无论myMethod的方法签名是什么,这都应该有效.这可能吗?

c#

4
推荐指数
2
解决办法
556
查看次数

电话号码最后一部分的变量名称

对于电话号码:234-567-8901,我会将变量命名为:

areaCode = "234";
exchange = "567";
Run Code Online (Sandbox Code Playgroud)

适用于"8901"的变量名称是什么?

variables telephony naming-conventions

4
推荐指数
3
解决办法
2846
查看次数

重写系统......保留旧架构?

假设我们有一个用过时技术编写的系统(生产中),很难适应不断变化的业务需求.已决定用更新的技术重写它.我们是否应该重新开始使用新的数据库模式来准确反映新系统的数据模型,但是接受开发数据库转换的风险和成本(由于分阶段的实施计划,必须是双向的)?或者我们应该保持相同的模式,即使它会使开发复杂化,因为它不反映新模型,但是获得了消除转换任务的优势?

architecture database-design

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

如何对这个替换的Perl子程序进行高尔夫?

我在Perl中有以下子程序用"abc"替换字符串中的"xyz":

sub mySubst {
    my ($str) = @_;
    $str =~ s|abc|xyz|ig;
    return $str;    
}
Run Code Online (Sandbox Code Playgroud)

它有效,但对于Perl来说似乎太冗长了.我怎样才能把它收紧?

perl

4
推荐指数
2
解决办法
643
查看次数

检查参数"使用",并传递其余的?

我有一个Perl模块,我希望能够选择我的模块用户在"use"调用中传递的参数.无论哪个我都不认识,我想传递.我试图通过覆盖"导入"方法来做到这一点,但我没有太多运气.

编辑:

为了澄清,我可以像这样使用我的模块:

use MyModule qw/foo bar/;
Run Code Online (Sandbox Code Playgroud)

这将导入MyModulefoobar方法.但我希望能够说:

use MyModule qw/foo doSpecialStuff bar/;
Run Code Online (Sandbox Code Playgroud)

并查找doSpecialStuff来检查我是否需要在程序开头做一些特殊的东西,然后将qw/foo bar /传递给Exporter的导入

oop perl module

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

Geo :: Google似乎死了,测试失败了,现在怎么样?

我尝试使用CPAN(http://metacpan.org/pod/Geo::Google v0.05)安装Geo :: Google ,几乎所有测试都失败了.我在这里查了http://matrix.cpantesters.org/?dist=Geo-Google+0.05,它确认这个模块失败了.

它似乎是一个废弃的模块,但我需要计算Perl程序中2个地址之间的行车距离.有什么建议?

perl google-maps cpan

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

使用AutoFac手动调用属性注入

假设所有依赖项已在程序开头注册.在程序的后续部分,如何使用AutoFac创建一个带有无参数构造函数的新对象,并将注册的属性注入对象?

autofac

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

C++到C#代码转换,引用与值类型的麻烦

首先,对于可能令人困惑的标题感到抱歉,每当有人知道更合适的标题时,请随时更改标题.

我正在将数学库从C++移植到C#.移植实际代码是在几天内完成的.但是,我一直在努力解决因C#类是引用类型而C++类是值类型这一事实所引入的所有错误.

让我解释一下:如果我在C++中有一个具有嵌套类Bar的Class Foo,并且如果我将一个现有的Bar实例分配给Foo,我实际上是在复制它,如果C++编译器知道这样做的话(如果我当然,我没有使用指针

如果我在C#中做同样的事情,我会分配一个引用.这导致难以置信的副作用.如果在C#中,我的代码稍后在将其分配给Foo后修改我的Bar实例,那么当然也会修改Foo.Bar对象.不好.

所以我的问题是:当我假设我分配了一份副本时,是否有一种简单的方法或最佳实践方法可以在我的代码中找到指定位置的位置?我甚至考虑每次在对象上调用getter时创建一个新对象,并在那里复制值.当然这意味着我再也不能对一个物体表示崇敬.再次,不好.

基本上我要问的是:如何找到每个出现的赋值运算符(=),其中TARGET是一个引用类型?这是我需要改变的那些代码行.

我试图通过简单地搜索'='字符来手动完成,但是在搜索了成千上万行代码之后,我仍然错过了偶尔的分配目标.

c# c++

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

bang 似乎不排除 .gitignore 中的文件

我有一个foo包含 2 个文件的目录,bar以及baz. 我有以下.gitignore文件,就在foo目录正上方:

foo/
!foo/baz
Run Code Online (Sandbox Code Playgroud)

我预计这将忽略所有foo目录,除了它应该不会忽视baz

但是,所有foo内容仍然被忽略。如果我运行git check-ignore foo/*,我会得到:

foo/bar
foo/baz
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

git

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

谓词参数如何在C#语法上工作?

一些对象关系映射(ORM)框架(如LLBLGen)允许您为查询方法指定"谓词"参数,例如(简化一点):

var entities = adapter.FetchEntities(EntityType.Employee,
    EmployeeFields.Salary > 50000);
Run Code Online (Sandbox Code Playgroud)

第二个参数如何在C#语法上工作?它有点像lambda表达式,但它没有参数部分或"=>".它是什么?这个可能需要Jon Skeet.

c# syntax orm lambda llblgenpro

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