我有一个泛型方法,它有两个通用参数.我试图编译下面的代码,但它不起作用.它是.NET限制吗?是否可以为不同的参数设置多个约束?
public TResponse Call<TResponse, TRequest>(TRequest request)
where TRequest : MyClass, TResponse : MyOtherClass
Run Code Online (Sandbox Code Playgroud) 我有一个类,我正在序列化一些数据:
[Serializable]
public class SomeData {
public int NumericField;
public string StringField;
}
Run Code Online (Sandbox Code Playgroud)
我有一个很好的方便的扩展方法:
public static string ToJson<T> (this T value) {
// yay no compile-time checks for [Serializable]?
if (!typeof(T).IsSerializable)
throw new SerializationException("Object lacks [Serializable] attribute");
var serializer = new DataContractJsonSerializer(typeof(T));
using (var stream = new MemoryStream()) {
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(stream, Encoding.UTF8)) {
serializer.WriteObject(writer, value);
}
return Encoding.UTF8.GetString(stream.ToArray());
}
}
Run Code Online (Sandbox Code Playgroud)
我真的很喜欢我的课程SomeData实现ISerializable,但是当我添加它时,我被告知我需要添加一个方法:
error CS0535: 'SomeData' does not implement interface member
System.Runtime.Serialization.ISerializable.GetObjectData(
System.Runtime.Serialization.SerializationInfo,
System.Runtime.Serialization.StreamingContext)'
Run Code Online (Sandbox Code Playgroud)
问题只是我希望它 …
我正在开发一个应用程序,我在RichTextBox其中定制了多种类型的应用程序(RichTextBox,RichAlexBox,TransparentRichTextBox).
我想创建一个方法来接受所有这些类型加上一些其他参数.
private void ChangeFontStyle(RichTextBox,RichAlexBox,TransparentRichTextBox rch,
FontStyle style, bool add)
{
//Doing somthing with rch.Rtf
}
Run Code Online (Sandbox Code Playgroud)
我已经通过计算器搜查,发现了一些答案这样,我无法弄清楚如何使用它们来解决我的问题
void foo<TOne, TTwo>() //There's just one parameter here
where TOne : BaseOne //and I can't figure out how to define my other two parameters
where TTwo : BaseTwo
Run Code Online (Sandbox Code Playgroud)
我也试过重载,因为这个答案提供,
private void ChangeFontStyle(TransparentRichTextBox rch, FontStyle style, bool add);
private void ChangeFontStyle(RichAlexBox rch, FontStyle style, bool add);
private void ChangeFontStyle(RichTextBox rch,FontStyle style, bool add)
{
//Some codes …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个处理我的两个模型之一的通用函数.请注意,这两个模型都具有相同的确切属性...
例如,在下面的代码中,即使"NewProduct"和"OldProduct"都具有此属性,智能感知也不知道在T中存在名为Price的属性.如何向VS指定我希望能够传入的两种类型?IList<NewProduct>, IList<OldProduct>
public static IList<T> GenericFunction<T>(IList<T> objList)
{
IList<T> filteredData = objList.Where(p => p.Price > 0));
}
Run Code Online (Sandbox Code Playgroud)