c# - 试图在 C# 中控制对象分配
问题描述
我想做的是控制两个对象的分配。因此,如果我的班级在字符串的情况下看起来像这样(非常粗略但只是示例)
public class fixLen
{
public int len;
public string str;
public fixLen(string str, int len)
{
this.str = str;
this.len = len;
}
}
然后在我的主要课程中我这样做;
fixLen str1 as new fixLen("abc", 3);
fixLen str2 as new fixLen("wxyz", 4);
str1 = str2
当 str2 分配给 str1 我希望能够查询每个对象的 len 属性并执行分配。在这种情况下,我希望 str1.str 属性以“wxy”值结束,将“wxyz”截断为 3 个字符(str1.len)。我试图用“操作员”程序元素来实现这一点,但它似乎不允许我同时查询源对象和目标对象。此功能的一个关键元素是它必须在类中实现。我不想在我的主类中使用任何其他语法:
str1 = str2
我想用最简单的术语来说,我想创建另一种原子类型,例如 int、float 或 string。
在数字的情况下;
public class fixNum
{
public int len;
public string val;
public fixLen(int val, int len)
{
this.val= val;
this.len = len;
}
}
然后在我的主要课程中;
fixNum num1 as new fixNum(0, 2)
fixnum num2 as new fixNum(999, 3)
num1 = num2 + 1
所以 num1 最终的值为 99。
解决方案
我能想到的唯一方法是:
在你的类中定义一个方法:
public void SetValue(fixLen f)
{
str = f.str.Substring(0, len);
}
并使用它str1.SetValue(str2);
。
推荐阅读
- elasticsearch - 如何使用单个 Elastic 搜索查询去重和执行聚合?
- html - Bootstrap - 线性渐变按钮不起作用
- javascript - 为什么我的 css3 动画在 chrome 和 edge 中如此错误?
- javascript - 如何在 NodeJS 中使用 MySQL 事务?
- debian - 未创建 freeswitch 网关
- python - 我想知道如何制作while循环?
- scala - 无法重新定义组件。ID:org.scala-sbt-compiler-bridge_2.12-1.3.5-bin_2.12.11__52.0
- java - java.lang.NullPointerException 在 Spring JPA 中使用 @Query 从 db 获取数据。虽然查询在 MySql 中返回数据
- java - 使用 fab 调用日期选择器对话框时出错
- android - 获取纬度和经度的数量