我想知道是否有任何类似set的readonly接口Contains在C#中声明了一个方法.我不想只是实现ISet接口,因为它有太多不必要的方法.
我的想法实现就像thi:
public class PositiveInt : IReadOnlySet<Int32>
{
public bool Contains(Int32 n){
return n > 0;
}
}
public class CraEmployeeNames:IReadOnlySet<String>
{
public bool Contains(String n){
return !String.IsNullOrWhiteSpace(n) && n.StartsWith("Cra");
}
}
Run Code Online (Sandbox Code Playgroud)
我可以定义自己的IReadOnlySet,但希望确保在我做之前没有内置的.
我正在尝试编写一个方法来返回自己的实例.伪代码是
Func<T,Func<T>> MyFunc<T>(T input)
{
//do some work with input
return MyFunc;
}
Run Code Online (Sandbox Code Playgroud)
看起来很简单.但我在定义返回类型时遇到问题.返回类型应该是委托
which takes T as parameter, then returns a function
which takes T as parameter, then returns a function
which takes T as parameter, then returns a function
...recursive definition
Run Code Online (Sandbox Code Playgroud)
我确信有一些我没注意到的微妙之处.有人可以为我指出它吗?谢谢.
我正在剃须刀视图页面中使用javascript执行电子邮件地址验证.我将要使用的正则表达式与JavaScript中的Validate电子邮件地址中提出的正则表达式类似?
但是,由于正则表达式包含"@"字符,因此在尝试运行Web应用程序时出现解析器错误.
我的正则表达式看起来像
/^...otherpart @* ... other part$/
Run Code Online (Sandbox Code Playgroud)
我试图添加一个'@'字符来制作原始正则表达式... @@*...,这消除了编译错误,但似乎使正则表达式停止工作.(我们在另一个不使用剃须刀引擎的网络应用程序中使用它,所以我知道它有效).
有没有其他方法来逃避'@'字符?
我已经实现了斐波那契序列生成器,如下所示
let getNext upperLimit current=
let (e1, e2) = current
let next = e1 + e2
if next > upperLimit then None
else Some (next, (e2,next))
let fib upperLimit = (0,1) |> Seq.unfold (getNext upperLimit) |> Seq.append [0;1]
Run Code Online (Sandbox Code Playgroud)
我的测试代码是
[<Test>]
member Spec.``fib not exeeding 20 should be 0,1,1,2,3,5,8,13``()=
let expected = seq [0;1;1;2;3;5;8;13]
let result = fib 20
let expectedSameAsResult = (expected = result)
printfn "Expected: %A Result: %A result length: %d" expected result (Seq.length result)
Assert.That expectedSameAsResult
Run Code Online (Sandbox Code Playgroud)
测试失败,打印结果为
预期:[0; …
我想知道C#是否支持以下可选属性
public class Person
{
public string Name { get; set;}
public optional string NickName { get; set;}
...many more properties...
}
Run Code Online (Sandbox Code Playgroud)
所以当我创建一个Person对象时,我可以在一个简单的循环中轻松检查输入值的有效性
public bool IsInputOK(Person person)
{
foreach( var property in person.GetType().GetProperties())
{
if( property.IsOptional())
{
continue;
}
if(string.IsNullOrEmpty((string)property.GetValue(person,null)))
{
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我在谷歌搜索但没有得到理想的解决方案.我是否真的必须手动为每个属性处理代码验证代码?
谢谢.
如果这是一个愚蠢的问题,请原谅我.我对Web编程不是很熟悉.我正在实现我的.net mvc应用程序的支付组件.该组件与外部支付服务交互.付款服务接受以下表格中的http post请求
http://somepaymentservice.com/pay.do?MerchantID=xxx&Price=xxx&otherparameters
Run Code Online (Sandbox Code Playgroud)
我知道通过在View中添加表单很容易做到.但是,我不希望我的观点处理第三方参数.我希望我的视图向我的控制器提交信息,然后控制器生成所需的URL,然后发出请求.以下是伪代码.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PayForOrder(OrderForm order)
{
var url = _paymentService.GetUrlFromOrder(order);
SendPostRequest(url);
return View("FinishedPayment");
}
Run Code Online (Sandbox Code Playgroud)
有可能这样做吗?c#是否有内置库来生成http请求?提前致谢.
我使用Castel Active Record实现了搜索功能.我认为代码很简单,但我一直在努力
NHibernate.QueryParameterException:无法找到命名参数[searchKeyWords]
错误.谁能告诉我出了什么问题?太感谢了.
public List<Seller> GetSellersWithEmail(string searchKeyWords)
{
if (string.IsNullOrEmpty(searchKeyWords))
{
return new List<Seller>();
}
string hql = @"select distinct s
from Seller s
where s.Deleted = false
and ( s.Email like '%:searchKeyWords%')";
SimpleQuery<Seller> q = new SimpleQuery<Seller>(hql);
q.SetParameter("searchKeyWords", searchKeyWords);
return q.Execute().ToList();
}
Run Code Online (Sandbox Code Playgroud) 我需要查找包含html代码的记录,例如' '但是当我尝试运行时,select * from table_name where column like ' %'
我得到了提示,询问nbsp的值.我想数据库认为nbsp是一个参数.我想知道是否是一个转义字符,以便我可以告诉数据库"&"是我的查询字符串的一部分.我尝试'\n'但是没有用.
我的环境是带有sqlplus客户端的Oracle 9i.
谢谢.
在Fsharp应用程序中,我已将几个联合案例类型定义为
type A = A of String
type B = B of String
type C = C of String
Run Code Online (Sandbox Code Playgroud)
我想定义一个函数来从union case实例中提取值.
let getValue( ctor: String-> 'a) =
...implementation here
Run Code Online (Sandbox Code Playgroud)
反正有没有完成这样的任务?谢谢.
我在后面使用ebean作为ORM和SQL Server.当我尝试setMaxRows时,我得到了SQL语法错误的例外.生成的sql有类似的东西
select .... from ... where ... LIMIT 5
Run Code Online (Sandbox Code Playgroud)
虽然这可能适用于mysql,但SQLServer不喜欢它.
经过一些搜索后,我发现EBean,LimitOffsetSqlLimiter使用的默认SqlLimiter创建了这样的sql.我想知道我是否可以配置ebean,以便它可以使用其他实现,如RowNumberSqlLimiter,甚至我自己的实现,如这里提到的?
c# ×4
asp.net-mvc ×2
f# ×2
.net ×1
ebean ×1
generics ×1
hql ×1
javascript ×1
lambda ×1
nhibernate ×1
oracle ×1
razor ×1
regex ×1
sql ×1