我试图弄清楚如何创建一个函数,我可以传入两个字符串,一个带有通配符,另一个用于检查它是否与通配符字符串匹配.
$wildcard_string = '*.example.com/some/path/*';
$test_string = 'dev.example.com/some/path/art123.html';
function test_wildcard_match($wildcard_string, $test_string){
//return true or false
}
Run Code Online (Sandbox Code Playgroud) 这是关于编码可读性的问题.
我有一个XDocument和一个List<string>包含我需要屏蔽的敏感信息的元素的名称(在本例中用下划线替换).
XDocument xDoc;
List<string> propertiesToMask;
Run Code Online (Sandbox Code Playgroud)
这可以用两种方式编写,使用传统foreach循环,或使用.ForEachlamba语法的方法.
foreach (string propertyToMask in propertiesToMask)
{
foreach (XElement element in xDoc.Descendants(propertyToMask))
{
element.SetValue(new string('_', element.Value.Length));
}
}
Run Code Online (Sandbox Code Playgroud)
要么
propertiesToMask
.ForEach(propertyToMask => xDoc.Descendants(propertyToMask).ToList()
.ForEach(element => element.SetValue(new string('_', element.Value.Length))));
Run Code Online (Sandbox Code Playgroud)
您认为哪种方法最具可读性?为什么?如果您更喜欢第二个示例,您将如何呈现它以获得最大可读性?
在我的公司(在Joel测试中获得3/12分)我们只能访问免费软件,所以我想知道在Java EE世界中,什么是钱可以买到的最好的工具?
例如,当有人告诉我关于hibernate profiler的时候,我痛苦地用p6spy调试了一些HQL ,这真的很棒且很有帮助.我开始思考"有一个超越自由/开源的世界!"
如果你有机会使用最好的工具(包括免费/开源),他们是什么?你可以没有他们吗?他们是如何改善您的生活和生产力的?
欢迎使用Profilers,设计器,框架,图形组件和其他工具.
我有一个包含Log4Net的非静态类.这非常方便,因为它链接到我所拥有的另一个应用程序,它显示我编写的各种软件中出现的不同进程的日志(允许我查看错误发生的位置,批处理失败等)
这一切都很好,但如果我想记录整个过程,我必须做一系列的事情:
这意味着如果一个进程在类之外运行,我必须搞乱传递Logging对象,这对于一个痛苦而且看起来很混乱.
我怎么能基本上以这样的方式声明对象:所有类都可以全局访问......并且使它静态不是真正的选择,我不这么认为.
.....这可能是浪费时间,但我喜欢意见.
这是我的问题.我有一个名为'user_has_personalities'的多对多表.在我的应用程序中,用户可以拥有许多个性,个性可以属于许多用户.
该表有两个整数列,user_id和personality_id.
我需要做的是让所有用户至少拥有我提供给查询的所有个性(一组可变大小的个性化用户).
举个例子,我想让所有具有ids 4,5,7个性的用户,但也可以拥有其他一些个性.但我需要查询来处理可变数量的通缉个性ID,例如4,5,7,9,10.
有任何想法吗?
为什么下面的代码不起作用?我的意思是,它在控制台输出上显示各种奇怪的字符.
#include <stdio.h>
char mybuffer[80];
int main()
{
FILE * pFile;
pFile = fopen ("example.txt","r+");
if (pFile == NULL) perror ("Error opening file");
else {
fputs ("test",pFile);
fgets (mybuffer,80,pFile);
puts (mybuffer);
fclose (pFile);
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,下面的代码运行良好.
#include <stdio.h>
char mybuffer[80];
int main()
{
FILE * pFile;
pFile = fopen ("example.txt","r+");
if (pFile == NULL) perror ("Error opening file");
else {
fputs ("test",pFile);
fflush (pFile);
fgets (mybuffer,80,pFile);
puts (mybuffer);
fclose (pFile);
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我需要刷新流以获得正确的结果?
前几天我和一名员工谈话,我记得他们提到了我们使用的工具,可以让你看到操作系统在事件发生时发送/接收的消息(例如,在Internet Explorer中点击链接时(或其他)浏览器)).
有人可以告诉我这个应用程序叫什么?
例如,假设以下片段的VB.NET代码删除目录.
Try
Dim SomeFolder="c:\somefolder"
System.IO.Directory.Delete(SomeFolder, True)
Catch ioex As System.IO.IOException
'What went wrong?
'File locked by another process?
'File not found?
'something else?
End Try
Run Code Online (Sandbox Code Playgroud)
在异常处理程序中,如果目录或其中的文件是打开的,我想让用户有机会关闭文件并重试操作,但前提是IOException是由锁定问题引起的.
问题是IOException可能由于多种原因而被抛出,例如在文件上设置了无效路径或只读标志.这些条件中的每一个都设置了不同的值.异常对象的message属性,但是对错误消息中的特定字符串进行硬编码以检测失败的具体原因只是错误.我不太相信错误字符串将与.net的未来版本一致,并且不愿意编写本地化代码以处理消息以非英语之外的其他方式返回的可能性.
必须有一种更好的方法来处理一个非常常见的异常处理问题.我错过了什么吗?
更新/澄清:感谢目前为止的答案,但我可能让我的例子有点过于通用.至少现在,我正在寻找一种方法来检测由异常处理程序中的另一个进程锁定的文件的状况.
有没有人知道提供传递方法的方法来提供类似下面的东西,但添加了DRY?
class Cover
@some_class = SomeClass.new
def some_method
@some_class.some_method
end
end
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想把它干涸到这样的事情:
class Cover
@some_class = SomeClass.new
passthrough @some_class.some_method
end
Run Code Online (Sandbox Code Playgroud)
没有猴子修补我自己的生活是否有人有?
干杯,
罗亚
我是C#的新手,不明白为什么以下代码不起作用.
public static Nullable<T> CoalesceMax<T>(Nullable<T> a, Nullable<T> b) where T : IComparable
{
if (a.HasValue && b.HasValue)
return a.Value.CompareTo(b.Value) < 0 ? b : a;
else if (a.HasValue)
return a;
else
return b;
}
// Sample usage:
public DateTime? CalculateDate(DataRow row)
{
DateTime? result = null;
if (!(row["EXPIRATION_DATE"] is DBNull))
result = DateTime.Parse((string)row["EXPIRATION_DATE"]);
if (!(row["SHIPPING_DATE"] is DBNull))
result = CoalesceMax(
result
DateTime.Parse((string)row["SHIPPING_DATE"]).AddYears(1));
// etc.
return result;
}
Run Code Online (Sandbox Code Playgroud)
它在编译期间出现以下错误:
类型'T'必须是非可空值类型,以便在泛型类型或方法'System.Nullable <T>'中将其用作参数'T'