おぉ!! >>8の一部、皆さんのご指摘どおり
static int num = 10;
public static implicit operator Test (string/*Test*/ str) {
num = int.Parse(str);
return new Test(num);
}
Test(int a) {
}
と変えたら、コンパイルが通り理想的な動作になりました。
>オブジェクトが無いのに非staticメンバをいじるのは当然できない。
は、特にすごくわかりやすかったです。

ついでの質問ですみません。面倒でしたらスルーしておいて下さい。
オブジェクト=インスタンス…で良いでしょうか?

なにはともあれ、ありがとうございました! 助かったです。