我需要一个正则表达式来匹配一个值,其中每个字符可以是0到9之间的数字或空格.该值必须包含11位数字.
例如,它应匹配格式为"012 345 678 90"或"01234567890"的值.
有人可以帮我这个吗?
我在C#.NET 3.5 RadioButtonList中以编程方式生成单选按钮列表,并使用a 来执行此操作.但是,我觉得非常令人沮丧的是RepeatLayout属性,只能设置为Flow或Table.
表格用于表格数据,不用于显示表格.并且流程没有帮助,因为它不适合造型.
我真正想要的是一个可以用CSS解决的div嵌套.可以这样做吗?
一些例子来说明我正在谈论的内容和下面的示例代码.
流程示例
<span id="s1">
<input id="s1_0" type="radio" value="Answer A" name="s1">
<label for="s1_0">Answer A</label>
<br>
<input id="s1_1" type="radio" value="Answer B" name="s1">
<label for="s1_1">Answer B</label>
</span>
Run Code Online (Sandbox Code Playgroud)
表的例子
<table border="0" id="s1">
<tbody>
<tr>
<td><input type="radio" value="Answer A" name="s1" id="s1_0"><label for="s1_0">Answer A</label></td>
</tr>
<tr>
<td><input type="radio" value="Answer B" name="s1" id="s1_1"><label for="s1_1">Answer B</label></td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我真正想要的是什么
<div id="s1">
<div>
<input type="radio" value="Answer A" name="s1" id="s1_0">
<label for="s1_0">Answer A</label>
</div>
<div>
<input …Run Code Online (Sandbox Code Playgroud) 我有另一个简单的(我认为),这让我很难过.我在我的一个控件中编写了一个方法,根据文件名获取CMS中文件的最新版本(即无论文件所在的文件夹是什么).我发现它很有用,我以为我会把它放在我的CMSToolbox类中,但是当我这样做时,我不能再使用Where()CMS提供的FileManager类的方法(它返回一个列表).
这是我班级的简化示例:
using System;
using System.Collections.Generic;
using CMS.CMS;
using CMS.Core;
using CMS.Web;
namespace CoA.CMS {
public class ToolBox
{
public CMS.CMS.File getLatestFileVersionByFilename(string filename, int GroupID)
{
IList<CMS.CMS.File> fileWithName = FileManager.GetGroupAll(false, GroupID).Where(file => currentFileVersionIsNamed(file, filename)).ToList<CMS.CMS.File>();
return getLatestFileFromListOfFiles(fileWithName);
}
protected bool currentFileVersionIsNamed(CMS.CMS.File file, string name)
{
}
protected CMS.CMS.File getLatestFileFromListOfFiles(CMS.CMS.File file)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在Control的上下文中完成同样的事情时(实际上是由CMS提供的类扩展Control)我可以访问该Where()方法,但在我的ToolBox类中我没有.是什么赋予了?我认为,IList无论你在哪里使用它,总是允许访问相同的方法.
我又错了,哈哈:)
编辑:Filemanager.GetGroupAll()返回一个CMSList扩展的IList
假设我有一个冗长,复杂的条件列表,必须为true才能运行if语句.
if(this == that && foo != bar && foo != that && pins != needles && apples != oranges)
{
DoSomethingInteresting();
}
Run Code Online (Sandbox Code Playgroud)
通常情况下,如果我被迫做这样的事情,我会把每个语句放在自己的行上,如下所示:
if
(
this == that
&& foo != bar
&& foo != that
&& pins != needles
&& apples != oranges
)
{
DoSomethingInteresting();
}
Run Code Online (Sandbox Code Playgroud)
但我仍觉得这有点乱.我很想将if语句的内容重构为它自己的属性
if(canDoSomethingInteresting)
{
DoSomethingInteresting();
}
Run Code Online (Sandbox Code Playgroud)
但是那只是将所有的混乱移动到canDoSomethingInteresting()并没有真正解决问题.
正如我所说,我的goto解决方案是中间解决方案,因为它不会像最后一个那样模糊逻辑,并且比第一个更具可读性.但必须有更好的方法!
响应Sylon评论的示例
bool canDoSomethingInteresting
{
get{
//If these were real values, we could be more descriptive ;)
bool thisIsThat = this == that; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个用于动态加载插件程序集的CMS插件Assembly.load.
注意:由于与进入无关的原因,前端静态加载程序集,而管理环境动态加载它.
我的插件有自己的xml配置文件,在第一次使用插件类时加载.使用配置文件反序列化为对象对象XmlSerializer.
当我通过前端静态加载程序集时,这种反序列化工作正常,但是当管理员尝试动态加载它时,我NullReferenceException从读者那里得到了一个.
我已经尝试使用Sgen预生成序列化程序集并将其添加到管理环境的"Bin"目录中,但这似乎没有任何效果.
堆栈跟踪:
[NullReferenceException: Object reference not set to an instance of an object.]
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccessibilityConfig..cctor() +1156
[TypeInitializationException: The type initializer for 'Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccessibilityConfig' threw an exception.]
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccessibilityConfig..ctor() +0
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializerContract.get_Reader() +44
System.Xml.Serialization.TempAssembly.InvokeReader(XmlMapping mapping, XmlReader xmlReader, XmlDeserializationEvents events, String encodingStyle) +69
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +101
[InvalidOperationException: There is an error in XML document (0, 0).]
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +613
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader) +30
CoA.WebUI.Controls.AccessibilityObjects.AccessibilityConfigBase`1.Deserialize(String xml) +196
CoA.WebUI.Controls.AccessibilityObjects.AccessibilityConfigBase`1.LoadFromFile(String fileName) +256 …Run Code Online (Sandbox Code Playgroud) 这是我正在查看的实际代码行:
ContentVersionCache cvc = ((PageBase)this.Page).cache;
Run Code Online (Sandbox Code Playgroud)
我知道这是一个非常基本的问题,但我刚刚开始学习C#,所以对我很轻松:)
干杯伊恩
再次免责声明仍然在学习C#和OOP一般,所以我希望你能耐心陪我:)
我目前正在使用一个CMS,它有一个叫做类的类FileVersion,它基本上包含一个与文件有关的属性列表,如文件名,文件类型,字节大小,id,上传日期,is-latest-version等.
FileVersions 的列表包含在File其中具有自己的唯一ID的列表中.如果要从CMS下载特定文件,则使用以下内容构建URL:
string URL = "/files/"+file.id.toString()+"/"+file.fileVersion.Last().filename;
Run Code Online (Sandbox Code Playgroud)
现在,对于我正在处理的特定控件(专门处理文档文件),能够将URL与所有其他FileVersion信息一起存储以供以后使用是有意义的.所以我决定创建自己的类DocumentVersion,其中包含扩展FileVersion.这就是它的样子:
public partial class DocumentVersion : FileVersion
{
public DocumentVersion() : base() { }
public string link;
}
Run Code Online (Sandbox Code Playgroud)
现在我应该注意,似乎我不需要在这里实现一个接口 - 但是不要把它作为福音,这就是为什么我在这里.
但是,当我试图像我这样投下我FileVersion的DocumentVersion时候:
DocumentVersion dv = ((DocumentVersion)fileversion);
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
无法将"Foo.CMS.FileVersion"类型的对象强制转换为"CoA.DocumentVersion".
我的想法是因为我试图在一个不同的命名空间中扩展一个类,而不是原来所在的,但就像我说的那样,OOP对我来说相对较新,所以我可能错了.
在此先感谢您的帮助.这个社区非常有价值!我只希望一旦我更熟练,我可以回馈:).
再次,学习者在这里.
一般来说,我希望能够查看应用程序的整个状态,以了解我在当前范围内可以获得的信息.
我做了很多事情就是打开QuickWatch并进行评估this,它给了我当前课程中的所有内容.
我想知道是否有任何其他关键字我可以用来获得类似的东西,这将允许我询问应用程序状态的其他部分.比如,有没有办法看到另一个类里面的值?是否存在"全球"范围?
希望你能提供帮助,并希望我没有太模糊,因为我还在学习在C#环境中使用的正确术语.
在此先感谢您的帮助 :)
干杯
伊恩
c# ×7
asp.net ×3
class ×2
.net ×1
assemblies ×1
casting ×1
css ×1
debugging ×1
extend ×1
if-statement ×1
ilist ×1
regex ×1
webforms ×1
where-clause ×1